alembic init alembic
alembic history | head
Alembic 最重要的功能是自动完成数据库的迁移「变更」,所做的配置以及生成的脚本文件都是为数据的迁移做准备的,数据库的迁移主要用到 upgrade
和 downgrade
子命令。
数据看的变更主要用到以下命令:
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'
原因:当前 数据库版本号(alembic_version)不是最新的,导致无法迁移数据
可能操作:因为没有更新alembic_version版本导致的这个问题
解决:使用命令
alembic upgrade head
原因:数据库版本号(alembic_version)不存在,导致无法迁移数据
可能操作:因为之前生成过迁移文件,然后又把迁移文件删了
解决:
- 将数据库删除(有重要数据不建议删除)
- 将alembic_version数据表删除,在执行
alembic revision --autogenerate -m "xxxxxxxx"
命令