问题
在使用flask-sqlalchemy做数据迁移时报错
> flask db migrate
INFO [alembic.runtime.migration] Context impl SQLiteImpl.
INFO [alembic.runtime.migration] Will assume non-transactional DDL.
ERROR [root] Error: Can't locate revision identified by '96a9717b0703'
解决
报错的原因可能是数据库版本不对,可能是更换了 migrations 文件,但是仍旧使用的是原来的数据库表。 可以尝试如下方式(先做好原数据库备份):
-
删除 migrations 文件夹 + 数据库表中的 alembic_version 表,重新初始化数据库并更新;
-
删除整个数据库表,之后便可以直接进行数据库初始化更新操作
我在尝试了第一种方式之后失败了,之后我采用的是第二中方式
> flask db initdb --drop
删除原有数据库重新创建,让后慢慢将原来数据倒入到新数据库中