flask migrate 自动更改数据库

flask migrate automatically changing database

我是 Flask 和 Flask-Migrate 的新手。 当 运行 python manage.py db migrate -m "explanation" 时,我对 models.py 所做的任何更改都会自动应用到数据库(在这种情况下,向某些 table 添加一列)。

我认为更改仅应在 运行 python manage.py db upgrade 之后应用?

此外,在上面的示例中,迁移文件包含两个函数:upgradedowngrade。但是,它们都是空的...它们不应该包括我想应用到数据库的更改吗?

我已经阅读了文档,它似乎与实际发生的事情相矛盾。在此先感谢您的帮助!

这不是 Flask-Migrate 的工作方式。 migrate 命令发现并生成架构更改,将其写入具有迁移描述代码的文件,具有 upgradedowngrade 功能。

使用python manage.py db upgrade命令更改数据库。

我怀疑您在 运行 migrate 命令时删除了数据库并重新创建了它。类似于:

db.drop_all()
db.create_all()

它将重新创建数据库,可能在 Flask-Migrate 能够分析架构之前。