gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 20:28:36 25 4
gpt4 key购买 nike

我正在使用 sqlalchemy 编写一个 Web 应用程序。在网站未投入生产的第一阶段开发过程中,一切都很顺利。我可以通过简单地删除旧的 sqlite 数据库并从头开始创建一个新数据库来轻松更改数据库架构。

现在网站正在生产中,我需要保留数据,但我仍然希望通过轻松地将数据库转换为新架构来保持我原来的开发速度。

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

最终,一些更改可能并非微不足道,需要进行一些预先计算。

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

顺便说一句,如果这有什么不同的话,该网站是用 Pylons 编写的。

最佳答案

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

从您的 SQLAlchemy 模型中自动生成架构迁移脚本:

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

然后将新的架构更改应用到您的数据库:

alembic upgrade head

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

关于python - 如何使用 sqlalchemy 有效地管理频繁的模式更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4165452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com