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
之后应用?
此外,在上面的示例中,迁移文件包含两个函数:upgrade
和 downgrade
。但是,它们都是空的...它们不应该包括我想应用到数据库的更改吗?
我已经阅读了文档,它似乎与实际发生的事情相矛盾。在此先感谢您的帮助!
这不是 Flask-Migrate
的工作方式。 migrate
命令发现并生成架构更改,将其写入具有迁移描述代码的文件,具有 upgrade
和 downgrade
功能。
使用python manage.py db upgrade
命令更改数据库。
我怀疑您在 运行 migrate
命令时删除了数据库并重新创建了它。类似于:
db.drop_all()
db.create_all()
它将重新创建数据库,可能在 Flask-Migrate
能够分析架构之前。
我是 Flask 和 Flask-Migrate 的新手。
当 运行 python manage.py db migrate -m "explanation"
时,我对 models.py 所做的任何更改都会自动应用到数据库(在这种情况下,向某些 table 添加一列)。
我认为更改仅应在 运行 python manage.py db upgrade
之后应用?
此外,在上面的示例中,迁移文件包含两个函数:upgrade
和 downgrade
。但是,它们都是空的...它们不应该包括我想应用到数据库的更改吗?
我已经阅读了文档,它似乎与实际发生的事情相矛盾。在此先感谢您的帮助!
这不是 Flask-Migrate
的工作方式。 migrate
命令发现并生成架构更改,将其写入具有迁移描述代码的文件,具有 upgrade
和 downgrade
功能。
使用python manage.py db upgrade
命令更改数据库。
我怀疑您在 运行 migrate
命令时删除了数据库并重新创建了它。类似于:
db.drop_all()
db.create_all()
它将重新创建数据库,可能在 Flask-Migrate
能够分析架构之前。