如何在开发针对许多数据库的应用程序时维护SQL脚本

时间:2011-03-12 19:50:26

标签: sql continuous-integration ddl

想象一下应该与不同的数据库供应商合作的应用程序。众所周知,SQL(尤其是DDL)的语法不可移植。你如何处理维护SQL脚本?

到目前为止,我看到了三个选项:

  • 以其中一个数据库的格式存储SQL,并且有一个工具可以自动从一种语法转换为另一种语言(你知道这些工具吗?)
  • 以某种人工语言存储SQL,并且有一个能够按需生成特定于供应商的SQL的工具(这里有任何建议吗?)
  • 以多种数据库格式存储SQL而忽略冗余(这是最糟糕的,不是吗?)

    你推荐他们中的任何一个吗?你有更好的主意吗?

开发环境试图遵循持续集成原则,因此自动化是这里的一个关键特性。

3 个答案:

答案 0 :(得分:1)

此视频显示了使用Subsonic项目http://subsonicproject.com/docs/Using_SimpleRepository及其数据迁移功能的解决方案。策略是使用通用语言并将其应用于不同的数据库。

希望这就是你要找的东西

答案 1 :(得分:1)

看看Liquibase(这基本上是你名单上的第二个项目)

http://www.liquibase.org

它并不完美(例如它不支持检查约束)但它非常有用

答案 2 :(得分:0)

使用某种具有模式生成功能的ORM框架。