在DB中对对象进行版本控制并使用SQLAlchemy重放事务

时间:2014-12-02 23:12:59

标签: python sqlalchemy

好的,我有以下问题。

我想使用SQLAlchemy在我的数据库中对对象进行版本控制。我理解如何通过例如creating my own mixin来做到这一点。更改将包括插入和更新,但不包括架构更改。

我还想通过重播这些更改来推广我的数据库到QA / Production服务器,这是一个git merge。

最简单的方法是使用版本号/时间戳向DB中的对象添加列,并编写SELECT MAX类型查询。但我正在和一个开发的朋友交谈,Ruby似乎有一些东西(ActiveRecord?)生成可以保存在git中的更新脚本。然后推广数据库就是运行这些脚本的问题。

我找到了SQLAlchemy Migrate架构的版本(我不希望改变它)。但是不清楚那个版本的数据(除非我遗漏了什么)。

无论如何,这似乎是一个问题,人们有一个很好的解决方法,任何提示?

(我并不拘泥于任何特定的技术,但我们对Python有很好的理解,并且必须使用其他东西才能做到这一点。我在上面的例子中选择了SQLAlchemy,因为它是Python我最熟悉的ORM。)

1 个答案:

答案 0 :(得分:1)

为避免大量复制/粘贴,请参阅以下内容:

这可能不像您希望的那样自动化,但它将支持静态数据的迁移。