Skip to content

Migrate Database

MingxuanGame edited this page Dec 13, 2025 · 2 revisions

连接

使用默认的环境变量连接,如果不存在会从 alembic.ini 里读取 sqlalchemy.url

创建迁移

修改数据库模型定义后,使用以下命令创建新的迁移脚本:

服务器 (g0v0-server)

在服务器根目录下使用 g0v0-migrate 替代 alembic

g0v0-migrate revision --autogenerate -m "描述你的迁移"

插件

包含 plugin.json 的目录会被识别为插件。你需要切换到插件目录或通过 -P/--plugin-dir 参数来操作插件的迁移。

cd plugin/foo
g0v0-migrate revision --autogenerate -m "这是我的第一个插件!"
# 或者
g0v0-migrate -P plugin/foo revision --autogenerate -m "这是我的第一个插件!"

plugin.json 需要包含 id

{
  "id": "foo"
}

请注意,以下修改操作无法生成自动迁移,请手动修改生成的迁移文件

  • 修改表名
  • 修改列名
  • 匿名命名的约束

升级/回滚迁移

升级所有数据库

g0v0-migrate 提供了一个快捷方式来升级服务器和所有插件的数据库到最新版本。你需要在服务器根目录下运行它。

g0v0-migrate upgrade-all

单独升级/回滚

要应用所有未应用的迁移脚本,请运行:

g0v0-migrate upgrade head

要升级/回滚版本,可以使用以下命令:

# 回滚一个版本
g0v0-migrate downgrade <revision>
# 升级两个版本
g0v0-migrate upgrade +2
# 回滚到最初版本
g0v0-migrate downgrade base
# 升级到特定版本
g0v0-migrate upgrade <revision>

详情参考:alembic 文档.

Clone this wiki locally