首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Python部署数据库更改

使用Python部署数据库更改
EN

Stack Overflow用户
提问于 2011-02-25 08:22:52
回答 2查看 746关注 0票数 0

我想知道是否有人可以推荐一个通过python部署数据库更改的好模式。

在我的场景中,我有一个或多个PostgreSQL数据库,并且我正在尝试为每个数据库部署一个代码库。下面是我的SQL脚本的目录结构示例:

代码语言:javascript
复制
my_db/
    main.sql
    some_directory/
        foo.sql
        bar.sql
    some_other_directory/
        baz.sql

下面是main.sql中的一个示例

代码语言:javascript
复制
/* main.sql has the following contents: */
BEGIN TRANSACTION
\i some_directory/bar.sql
\i some_directory/foo.sql
\i some_other_directory/baz.sql
COMMIT;

如您所见,main.sql为数据库更新定义了特定的操作顺序和事务。

我还有一个python / twisted服务来监视SVN中这段db代码的变化,我想在发现svn存储库中的新内容时自动部署这段代码。

有人能推荐一个好的模式在这里使用吗?

我应该解析每个文件吗?我应该付钱给psql吗?

EN

回答 2

Stack Overflow用户

发布于 2011-02-25 08:44:45

如果您控制所有的服务器,并且它们都是postgresql服务器,那么您所做的实际上是一种不错的方法。

一种更通用的方法是建立一个“迁移”目录,这些“迁移”通常是带有apply()和undo()的类,这些类实际执行数据库中的工作,并且通常带有诸如.create_table()之类的抽象,这些抽象生成特定于您正在使用的任何关系型数据库的DDL指令。

通常,您有一些命名约定来确保迁移按照创建的顺序运行。

python有一个叫做South的迁移库,尽管它似乎是专门针对django开发的。http://south.aeracode.org/docs/about.html

票数 1
EN

Stack Overflow用户

发布于 2011-02-25 11:59:01

我们刚刚集成了sqlalchemy-migrate,它有一些类似于Rails的约定,但具有SQLAlchemy的强大功能。它正在形成一个非常棒的产品,但它确实有一些缺点。不过,它是非常无缝集成的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5112225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档