删除迁移文件夹后重置Alembic

时间:2018-11-14 22:40:15

标签: python flask alembic

我不小心删除了我的迁移文件夹。于是我运行了flask db init,一切都顺利进行了。但是当我运行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 '470572fac7a1'

据我了解,它正在寻找其他早已消失的迁移文件夹。我该怎么解决?

4 个答案:

答案 0 :(得分:2)

删除数据库中表alembic_version中的特定记录。仅有一个varchar列,称为ve​​rsion_num,因此此表达式应该起作用:

delete from alembic_version where version_num='470572fac7a1';

答案 1 :(得分:0)

删除/migrations目录并重命名/复制您的应用程序数据库。然后从头开始。

flask db init
flask db migrate
flask db upgrade

现在,使用备份中的数据重新填充新的空数据库。

答案 2 :(得分:0)

您可以使用以下命令还原到数据库的早期版本:

flask db revision --rev-id 470572fac7a1

答案 3 :(得分:0)

转到versions/内的migrations/

如果您没有看到文件夹 versions/ 或文件夹 versions/ 中没有修订,请键入以下命令以创建修订:

flask db revision

您将在 versions/ 文件夹中获得一个修订版本。打开它并将修订版 ID 替换为“470572fac7a1”:

revision = "470572fac7a1"

再次输入 flask db migrate

应该可以。