烧瓶 - 小便能做迁移吗?

use*_*928 5 python flask flask-peewee

我想使用flask peewee作为关系数据库(MySQL)的ORM,但我的问题是模型结构的变化......比如为模型添加新属性(这意味着db中的列).我想知道我是否可以自动执行此操作而无需手动编写SQL?

Nic*_*ams 5

看起来Peewee模块确实支持迁移.

http://peewee.readthedocs.org/en/latest/peewee/playhouse.html#schema-migrations

  • 取决于您想从迁移工具中获得什么。一些迁移工具为您处理数据版本控制并自动应用正确的迁移来更新数据库以匹配当前模式。内置的 peewee 迁移模块不会这样做。它只是根据您的指示添加或删除列。 (2认同)

kle*_*len 5

我为Peewee写了一个简单的迁移引擎https://github.com/klen/peewee_migrate


ker*_*son 5

我们开发了https://github.com/keredson/peewee-db-evolve供我们公司使用,这听起来可能对您有所帮助。

db-evolve无需手动编写迁移,而是计算现有模式与定义的模型之间的差异。然后,它预览并应用非破坏性SQL命令以使您的模式符合要求。我们发现它是用于模式管理的更健壮的模型。(例如,用不同的模式更改在任意分支之间进行切换是微不足道的,与手动创建的迁移相比几乎是不可能的。)

例:

在此处输入图片说明

将其视为Peewee的无损版本create_tables()。(实际上,我们一直在使用它,以便在测试中从头开始构建模式。)

  • 很棒的图书馆!但我希望它也可以用于peewee3.x。您有机会进行升级吗? (2认同)