金字塔架构迁移

4
我正在Gentoo下使用“原生”的Pyramid 1.4,希望对我的表进行更改并提交,而不必删除表(及其所有数据),然后重新创建它。我听说解决此问题的方法是模式迁移。
作为一名长期使用Django的用户,我一直在使用django-south,但现在我正在使用Pyramid,我找不到任何处理迁移的方法。我已经阅读了有关sqlalchemy-migrate的文章,它看起来非常好,但我不确定如何让它与Pyramid配合工作。
是否有任何方法可以在Pyramid 1.4中处理模式迁移? 如果使用sqlalchemy-migrate是明智的选择,那么我该如何让它与Pyramid配合工作?
谢谢。
2个回答

12

虽然这并没有直接回答你的问题:你是否考虑过使用Alembic,一个全新的SQLAlchemy迁移工具,由Mike Bayer本人(SQLAlchemy的作者)开发?与此同时,sqlalchemy-migrate的开发似乎已经在一月份停止了,而Alembic则非常活跃。


6
作为Martin所说,我建议您在迁移方面使用Alembic。它来自SqlAlchemy的创始人,并且应该能够与任何SqlAlchemy的变化保持同步。
至于将其集成到您的框架中,那就由您决定了。我通过更新Alembic中的env.py以加载我的Pyramid .ini文件,在Bookie中设置了它。您可以在此处查看代码更改:

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

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