我在Gentoo下使用的是"vanilla“Pyramid 1.4,我希望对我的表进行更改并提交它们,而不必删除表(及其所有数据),然后重新创建它。我听说解决这个问题的方法是模式迁移。
作为Django的长期用户,我一直在使用django-south,但现在我使用的是金字塔,我找不到任何方法来处理迁移。我读过关于sqlalchemy-migrate的文章,它看起来真的很好,但我不确定如何让它与金字塔一起工作。
在金字塔1.4中有没有处理模式迁移的方法?如果使用sqlalchemy-migrate是明智的选择,我如何让它与金字塔一起工作?
干杯。
发布于 2012-10-13 10:35:14
虽然这并没有直接回答您的问题:您是否考虑过Alembic,这是Mike Bayer本人( SQLAlchemy的作者)自己开发的一个新的SQLAlchemy迁移工具?sqlalchemy-migrate的开发似乎在一月份就停止了,而Alembic则相当活跃。
发布于 2012-10-14 04:14:43
正如Martin所说,我建议您使用Alembic进行迁移。它来自SqlAlchemy的创建者,应该很好地与任何SqlAlchemy更改保持同步。
至于将其连接到您的框架中,这取决于您。我在Bookie中通过更新Alembic中的env.py来加载我的金字塔.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
https://stackoverflow.com/questions/12868078
复制相似问题