为什么 Flask Migrate 不创建一个空的迁移文件?

Why Flask Migrate doesn't create an empty migration file?

我正在使用 Flask、Flask-SqlAlchemy 和 Flask-Migrate 来管理我的模型。我刚刚意识到,在我最新的数据库状态下,当我创建一个新的迁移文件 python manage.py db migrate -m'test migration 时,它不会创建一个空的迁移文件。相反,它会尝试创建和删除几个唯一键和外键约束。

知道为什么会这样吗?

如果您没有对当前迁移的模型进行任何更改,但生成了一个非空的迁移文件,则表明由于某种原因您的模型与数据库不同步,并且这个新的迁移只是不匹配的东西。

如果您说迁移包含删除一些约束并添加一些其他约束的代码,这让我认为约束名称可能已更改,或者您可能将 SQLAlchemy 版本升级到生成约束的较新版本不同的名字。