flask自动更改数据库

时间:2016-05-07 07:49:41

标签: python flask-sqlalchemy database-migration alembic

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

我认为只有在运行python manage.py db upgrade后才会应用更改?

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

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

1 个答案:

答案 0 :(得分:2)

Flask-Migrate的工作原理并非如此。 migrate命令发现并生成架构更改,使用迁移描述代码将其写入包含upgradedowngrade函数的文件。

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

我怀疑您在运行migrate命令时丢弃数据库并重新创建它。类似的东西:

db.drop_all()
db.create_all()

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