Subversion下的SQL脚本

时间:2009-06-05 19:42:40

标签: sql svn build-process

我是一名构建工程师,负责我们的源代码控制布局。我们需要保留所有数据库对象的版本,并将更改与滚动脚本组合在一起以推送到生产环境。我们有开发,QA和生产环境,每个环境中都有不同版本的数据库对象。我们遇到麻烦的一个方面是表创建vs改变。开发人员将检入更改,但要重新创建我们需要创建的数据库。任何想法都将不胜感激。

3 个答案:

答案 0 :(得分:3)

我是http://www.liquibase.org/的粉丝。它允许您跟踪数据库的版本,包括“更新”和“回滚”您的架构/数据的能力。

他们有一个很好的XML语法,支持常见的重构,包括http://databaserefactoring.com/

中详述的重构

他们还有Eclipse插件来帮助创建更改脚本,以及用于集成到构建中的ant任务。

我唯一的抱怨是它是基于Java的,我喜欢在.NET项目的构建服务器上安装java。在那种情况下,我听到了关于http://code.google.com/p/migratordotnet/的好消息。

答案 1 :(得分:1)

您应该了解一下像rails这样的框架如何处理迁移

http://dizzy.co.uk/ruby_on_rails/cheatsheets/rails-migrations

答案 2 :(得分:0)

我可以推荐你这样的场景:

  1. Dbunit用于数据填充(例如字典,masterdata和其他关键数据库信息)
  2. {li> Liquibase dbdeploy用于数据库重构。在我看来liquibase是更多面向重构的工具和dbdeploy - 更加面向流程(即你必须手工做更多,但它简化了开发,测试和生产支持过程)。

    如果您的公司正在使用ORM,您可以基于ORM引擎动态创建数据库模式“diff”。此外,如果您的产品使用不同的数据库,您将具有额外的复杂性。不幸的是,dbdeployliquiase对于多数据库开发/重新格式化都不满意。