python教程—如何使用sqlalchemy有效地管理频繁的模式更改?-Python实用宝典

python教程—如何使用sqlalchemy有效地管理频繁的模式更改?

我正在使用sqlalchemy编写一个web应用程序。在开发的第一阶段,当网站还没有投产时,一切都很顺利。只需删除旧的sqlite数据库并从头创建一个新数据库,就可以轻松地更改数据库模式。

我正在使用sqlalchemy编写一个web应用程序。在开发的第一阶段,当网站还没有投产时,一切都很顺利。只需删除旧的sqlite数据并从头创建一个新数据,就可以轻松地更改数据模式。

现在该站点已经投入生产,我需要保存数据,但是我仍然希望通过轻松地将数据转换为新模式来保持原来的开发速度。

假设模型。py在版本50处,模型。py在版本75处,描述数据的模式。在这两个模式之间,大多数更改都是微不足道的,例如,用默认值声明一个新列,而我只想将这个默认值添加到旧记录中。

最终,一些更改可能不是微不足道的,并且需要一些预计算。

您如何(或将如何)处理快速变化的web应用程序,例如,每天使用一到两个新版本的生产代码?

顺便说一下,如果这有什么区别的话,这个站点是用电塔写的。

回答

Alembic是一个新的数据迁移工具,由SQLAlchemy的作者编写。我发现它比sqlalchemy-migrate更容易使用。它还可以与Flask-SQLAlchemy无缝地工作。

自动生成模式迁移脚本从您的SQLAlchemy模型:

    alembic revision --autogenerate -m "description of changes"

然后将新的模式更改应用到数据:

    alembic upgrade head

更多信息:http://readthedocs.org/docs/alembic/

​Python实用宝典 (pythondict.com)
不只是一个宝典
欢迎关注公众号:Python实用宝典

本文由 Python实用宝典 作者:Python实用宝典 发表,其版权均为 Python实用宝典 所有,文章内容系作者个人观点,不代表 Python实用宝典 对观点赞同或支持。如需转载,请注明文章来源。
1

发表评论