我正在开发一个基于Flask + SqlAlchemy + MySQL的Web应用程序,并遵循这个答案。 我需要更改我的模型,因此需要修改db表并添加一列,但我不想丢失存储的数据,也不想删除和重新创建它。
我阅读了有关Flask-Migrate和Alembic的内容...它们解决我的问题必须吗?我该怎么办?
我正在开发一个基于Flask + SqlAlchemy + MySQL的Web应用程序,并遵循这个答案。 我需要更改我的模型,因此需要修改db表并添加一列,但我不想丢失存储的数据,也不想删除和重新创建它。
我阅读了有关Flask-Migrate和Alembic的内容...它们解决我的问题必须吗?我该怎么办?
是的,它们可以很有帮助。我建议使用Alembic (http://alembic.readthedocs.org/en/latest/),这是SQLAlchemy的作者开发的。
使用迁移时,您需要定义要进行的更改。在您的情况下,您想要添加一个列。我认为这不会有问题。添加列通常不会导致数据丢失。更改类型或删除列会导致数据丢失。
当然,您也可以直接更新表格,只需更新模型以反映新列即可。但是,迁移通常是更可管理的方法。
Flask-Migrate 是一个扩展,使用 Alembic 处理 SQLAlchemy 数据库迁移,适用于使用 Flask 开发的应用程序。数据库操作可通过 Flask 命令行界面进行。
>>> pip install flask-migrate
ALTER TABLE
,然后更改表中的值。