初始化
alembic init alembic
查看历史head
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'
情况1
原因:当前 数据库版本号(alembic_version)不是最新的,导致无法迁移数据
可能操作:因为没有更新alembic_version版本导致的这个问题
解决:使用命令alembic upgrade head
情况2
原因:数据库版本号(alembic_version)不存在,导致无法迁移数据
可能操作:因为之前生成过迁移文件,然后又把迁移文件删了
解决:
- 将数据库删除(有重要数据不建议删除)
- 将alembic_version数据表删除,在执行
alembic revision --autogenerate -m "xxxxxxxx"
命令
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)