alembic 命令的使用

初始化

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" 命令
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值