Flask + SqlAlchemy修改表格

5

我正在开发一个基于Flask + SqlAlchemy + MySQL的Web应用程序,并遵循这个答案。 我需要更改我的模型,因此需要修改db表并添加一列,但我不想丢失存储的数据,也不想删除和重新创建它。

我阅读了有关Flask-Migrate和Alembic的内容...它们解决我的问题必须吗?我该怎么办?

3个回答

5

是的,它们可以很有帮助。我建议使用Alembic (http://alembic.readthedocs.org/en/latest/),这是SQLAlchemy的作者开发的。

使用迁移时,您需要定义要进行的更改。在您的情况下,您想要添加一个列。我认为这不会有问题。添加列通常不会导致数据丢失。更改类型或删除列会导致数据丢失。

当然,您也可以直接更新表格,只需更新模型以反映新列即可。但是,迁移通常是更可管理的方法。


1
我使用文档在10分钟内配置了Alembic:升级非常成功!谢谢。 - rh0x

0

Flask-Migrate

Flask-Migrate 是一个扩展,使用 Alembic 处理 SQLAlchemy 数据库迁移,适用于使用 Flask 开发的应用程序。数据库操作可通过 Flask 命令行界面进行。

>>> pip install flask-migrate

https://flask-migrate.readthedocs.io/en/latest/index.html


Flask-Migrate 需要使用 Flask-SQLAlchemy,而非纯 SQLAlchemy。查看 - user2003052

0
一个简单的解决方案是在你的SQL中使用ALTER TABLE,然后更改表中的值。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接