Apache Superset:从 sqlite 迁移到 Postgres
Apache Superset: Migrate from sqlite to Postgres
当我从 sqlite 迁移到 postgres 时,我无法对新数据库进行任何写入。
日志显示以下错误:
Unique key conflict id= 10, already exist in table ab_user
两种可能的情况:
场景 A:您是从头开始,想使用 Postgres 而不是 sqlite。
- 安装 postgres
- 将 postgres 连接字符串添加到 superset_config.py 文件
- 运行
superset db upgrade
这将在 Postgres 上创建所有 table
- 运行
superset init
- 启动超级集
场景 B:您有一个已经填充的 sqliteDB 并希望将其迁移到 Postgres。
- 安装 postgres
- 将 postgres 连接字符串添加到 superset_config.py 文件
- 将所有 tables 从 sqlite 复制到 postgres,有很多方法可以做到这一点。我的首选方法是使用 ruby
- 复制数据后 运行
superset db upgrade
和 superset init
- 完成此操作后,您需要在 table
information_schema.sequences
上更新 Postgres 上的键序列,否则您将遇到唯一键冲突错误。
- 启动超级集
在这两种情况下,您应该在 运行 superset db upgrade
之后看到下面的消息,这意味着您已经正确配置了 superset_config.py。:
INFO [alembic.runtime.migration] Context impl PostgresqlImpl.
通过设置环境变量确保超集正在查看配置文件:
export PYTHONPATH=/home/local_settings/:$PYTHONPATH
OR
export SUPERSET_CONFIG_PATH=/home/local_settings/
当我从 sqlite 迁移到 postgres 时,我无法对新数据库进行任何写入。 日志显示以下错误:
Unique key conflict id= 10, already exist in table ab_user
两种可能的情况:
场景 A:您是从头开始,想使用 Postgres 而不是 sqlite。
- 安装 postgres
- 将 postgres 连接字符串添加到 superset_config.py 文件
- 运行
superset db upgrade
这将在 Postgres 上创建所有 table
- 运行
superset init
- 启动超级集
场景 B:您有一个已经填充的 sqliteDB 并希望将其迁移到 Postgres。
- 安装 postgres
- 将 postgres 连接字符串添加到 superset_config.py 文件
- 将所有 tables 从 sqlite 复制到 postgres,有很多方法可以做到这一点。我的首选方法是使用 ruby
- 复制数据后 运行
superset db upgrade
和superset init
- 完成此操作后,您需要在 table
information_schema.sequences
上更新 Postgres 上的键序列,否则您将遇到唯一键冲突错误。 - 启动超级集
在这两种情况下,您应该在 运行 superset db upgrade
之后看到下面的消息,这意味着您已经正确配置了 superset_config.py。:
INFO [alembic.runtime.migration] Context impl PostgresqlImpl.
通过设置环境变量确保超集正在查看配置文件:
export PYTHONPATH=/home/local_settings/:$PYTHONPATH
OR
export SUPERSET_CONFIG_PATH=/home/local_settings/