当前位置: 首页 > 工具软件 > alembic > 使用案例 >

alembic 命令的使用

云慈
2023-12-01

初始化

alembic init alembic

查看历史head

alembic history | head

变更数据库

Alembic 最重要的功能是自动完成数据库的迁移「变更」,所做的配置以及生成的脚本文件都是为数据的迁移做准备的,数据库的迁移主要用到 upgradedowngrade 子命令。

数据看的变更主要用到以下命令:

alembic upgrade head  #将数据库升级到最新版本。
alembic downgrade base  #将数据库降级到最初版本。
alembic upgrade <version>  #将数据库升级到指定版本。
alembic downgrade <version>  #将数据库降级到指定版本。
alembic upgrade +2  #相对升级,将数据库升级到当前版本后的两个版本。
alembic downgrade +2  #相对降级,将数据库降级到当前版本前的两个版本。

以上所有的升降级方式都是在线方式实时更新数据库文件,实际环境中总会存在一些环境无法在线升级,Alembic 提供了生成 SQL 脚本的形式,已提供离线升降级的功能。

alembic upgrade <version> --sql > migration.sql

alembic downgrade <version> --sql > migration.sql

遇到的问题

FAILED: Can't locate revision identified by 'xxxxxxxxxx'

情况1

原因:当前 数据库版本号(alembic_version)不是最新的,导致无法迁移数据

可能操作:因为没有更新alembic_version版本导致的这个问题

解决:使用命令alembic upgrade head

情况2

原因:数据库版本号(alembic_version)不存在,导致无法迁移数据

可能操作:因为之前生成过迁移文件,然后又把迁移文件删了

解决:

  1. 将数据库删除(有重要数据不建议删除)
  2. 将alembic_version数据表删除,在执行alembic revision --autogenerate -m "xxxxxxxx" 命令
 类似资料: