我正在try 使用alembic来处理项目中的本地migrations.它第一次起作用,但后来我需要删除文件夹并重新启动.(不要问为什么,我只是不得不)我在跟踪this tutorial,我运行命令

python manage.py db init

还可以.但当我试着跑的时候

python manage.py db migrate

我得到了这个错误:

alembic.util.CommandError: Can't locate revision identified by '31b8ab83c7d'

Now, it seems that alembic is looking for a revision that doesn't exists anymore. There is anyway to make alembic forget that file? Or like restart the comparison from None to -> auto-generated again?

推荐答案

Alembic将版本历史记录存储在数据库中.因此,它使用存储在数据库中的值来搜索修订.我的个人数据库的版本号存储在表alembic_version中:

mysql> SELECT * FROM alembic_version;
+-------------+
| version_num |
+-------------+
| c8ad125e063 |
+-------------+
1 row in set (0.00 sec)

提示:如果是基于SQL的数据库,请使用命令SHOW TABLES查看表.

要解决问题,只需使用以下命令:

DROP TABLE alembic_version;

或者不管数据库版本表的名称是什么.

python manage.py db init

然后创建一个新的迁移:

python manage.py db migrate

然后,您应该能够很好地在alembic中进行工作migrations.

Postgresql相关问答推荐

即使密码更改,也可以访问Docker Postgresql数据库

我需要一个变量来引用上周的星期五

多克.波斯格雷斯.PgAdmin4

在 postgresql 中查找表的所有依赖项

包含间隔在 jooq 和 postgres 中没有按预期工作

PostgreSQL bytea 网络流量双倍预期值

DbProviderFactory 与 Npgsql?

Mac psql/readline - 未加载库

MAC OS X 上的 Postgres 权限被拒绝

为什么 sqlalchemy 的默认列值不起作用

在 PostgreSQL 中表示Sparse稀疏数据

从 Select 中创建一个临时表,如果表已经存在则插入

Postgres NOT IN (null) 没有结果

PostgreSQL:将结果数据从 SQL 查询导出到 Excel/CSV

如何在 postgresql 交叉表中用零替换空值

如何将表的一列复制到PostgreSQL中比较相同ID的另一表的列

Postgresql - 更新规则 - 可能有一个最后修改日期,自动更新该行的on update?

PostgreSQL 9 在 Windows 上安装:Unable to write inside TEMP environment path.

实时监控 PostgreSQL 查询的应用程序?

在布尔字段上添加索引