2016-09-28 38 views
1

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

为什么它的行为像这样的任何想法?

回答

2

如果您没有做出改变,从当前迁移模型,但你生成一个非空迁移文件,然后它表明由于某种原因,你的模型成为了与数据库同步,并在此内容新的迁移只是不匹配的东西。

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

+0

嗨@miguel,谢谢您的回复!嗯,目前我不确定为什么我的移民创建了一个非空迁移。 SqlAlchemy版本仍然相同(Flask-SqlAlchemy 2.1)。并且没有模型改变(与上述限制直接相关)。我接受这个非空的迁移文件,并且我看到后续的迁移是空的。我将检查这个解决方案在我的案例 – swdev

+0

中是否可以接受您的解决方案可能可行,但一定要测试生成一个全新的数据库并在整个迁移列表中运行它,确保此非空迁移不会失败,刮。 – Miguel

+0

只是想让你知道,我创建了现有的迁移,然后成功创建下一个迁移。虽然我不确定首先是什么造成了这个错误。虽然,数据库是使用PostgreSQL的备份和更高版本。只是觉得这个过程改变了一些索引名字... – swdev

相关问题