金字塔架构迁移

q3d*_*q3d 4 python sqlalchemy database-migration sqlalchemy-migrate pyramid

我在Gentoo下使用"vanilla"Pyramid 1.4,我希望对我的表进行更改并提交它们而不必删除表(及其所有数据),然后重新创建它.我听说过这个解决方案是架构迁移.

作为Django的长期用户,我一直在使用django-south,但现在我正在使用Pyramid我找不到任何方法来处理迁移.我读过sqlalchemy-migrate,看起来非常好,但我不确定如何让它与金字塔一起工作.

有没有办法在Pyramid 1.4中处理模式迁移?如果使用sqlalchemy-migrate是明智的选择,我如何让它与金字塔一起使用?

干杯.

Mar*_* S. 12

虽然这并没有直接回答你的问题:你是否考虑过Alembic,一个由Mike Bayer自己创建的新的SQLAlchemy迁移工具(SQLAlchemy的作者)?sqlalchemy-migrate的开发似乎在1月停止,而Alembic非常活跃.


Ric*_*ick 6

正如马丁所说,我建议你去Alembic进行迁移.它来自SqlAlchemy的创建者,应该与任何SqlAlchemy变化保持同步.

至于将它连接到您的框架中,这取决于您.我在Bookie中通过更新Alembic中的env.py来加载我的Pyramid .ini文件.您可以在此处查看代码中的更改:

https://github.com/mitechie/Bookie/blob/develop/dbversions/env.py#L8

这也会加载模型,以便您可以使用自动生成的更改.

然后,我通过Makefile中的帮助程序控制迁移,允许我生成,更新等.

https://github.com/mitechie/Bookie/blob/develop/Makefile#L67

这些可能会变成金字塔p*命令,但我没有这样做. http://pyramid.readthedocs.org/en/latest/narr/commandline.html#writing-a-script