superset是一个优秀的开源数据展示软件,但是在一些支持上还有所欠缺。
笔者目前遇到一个任务: 需要将superset的数据库从sqlite迁移到mysql上,并升级superset,在这个过程中遇到了很多问题。
任务
- 迁移superset meta,sqlite -> mysql
- 升级superset, 0.28.1 -> 0.34.0rc1
- 使用docker启动superset
步骤1: 导出基础数据
使用superset自带命令导出数据源和数据配置:
superset export_datasources > datasources.yaml
superset export_dashboards > dashboards.json
问题1:版本不一致,无法直接导入数据
最开始笔者使用了0.34.0rc1的superset导入步骤1中的yaml和json,因为格式不一致,无法成功导入。 查看了源代码发现在这几个版本中,更改了大量的数据库schema,即superset的export不能跨版本导入。
步骤2:使用旧版本连接mysql,并导入数据
使用docker启动一个新的superset,版本和旧superset一致(0.28.1)
docker run -d -p 8088:8088 -v /root/superset:/home/superset amancevice/superset:0.28.1