4

我在 Gentoo 下使用“vanilla” Pyramid 1.4,我想对我的表进行更改并提交它们,而不必删除表(及其所有数据)然后重新创建它。我听说解决方案是模式迁移。

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

Pyramid 1.4 中有什么方法可以处理模式迁移吗?如果使用sqlalchemy-migrate是明智的选择,我如何让它与 Pyramid 一起使用?

干杯。

4

2 回答 2

12

虽然这并不能直接回答您的问题:您是否考虑过Alembic,它是 Mike Bayer 本人(SQLAlchemy 的作者)提供的一种新的 SQLAlchemy 迁移工具?sqlalchemy-migrate 的开发似乎在一月份就停止了,而 Alembic 则相当活跃。

于 2012-10-13T02:35:14.197 回答
6

正如 Martin 所说,我建议您使用 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

于 2012-10-13T20:14:43.367 回答