Heroku Postgres, db migrate fail: alembic.util.exc.CommandError: Can't locate revision identified by

在将Flask应用部署到Heroku并使用Alembic进行数据库迁移时,遇到'Can't locate revision identified by...'的问题。原因是本地SQLite与远程Postgres的Alembic版本不一致。解决方法包括删除远程数据库中的Alembic_version表数据,或者通过创建Alembic模型并实现删除version_num数据的方法来清除。
摘要由CSDN通过智能技术生成

问题:

alembic.util.exc.CommandError: Can't locate revision identified by 'b44ffb6f5dc6'

部署Flask到Heroku后,如果后台数据库更改了表格、column等,本地用 Alembic很容易完成 db migration。

然后 git add/commit/push heroku后,数据库 migrate就会失败!


c:\git\tmp\tianya>heroku run bash
Running bash on tianya... up, run.2000 (Free)
~ $ python manage.py db upgrade
INFO  [alembic.runtime.migration] Context impl PostgresqlImpl.
INFO  [alembic.runtime.migration] Will assume transactional DDL.
Traceback (most recent call last):
  File "manage.py", line 110, in <module>
    manager.run()
...
  File "/app/.heroku/python/lib/python2.7/site-packages/alembic/script/revision.py", line 359, in _revision_for_ident
    resolved_id)
alembic.util.exc.CommandError: Can't locate revision identified by 'b44ffb6f5dc6'</span>


原因:

本地是用 sqlite,远程是用 Postgres,使用 Alembic db init / db migrate / db upgrade之后,会在数据库里创建新表格 alembic_version:


但本地和远程的 Alembic migrati

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值