在应用程序中构建SQL部署脚本?

时间:2013-02-25 22:24:09

标签: sql database deployment

我们目前有一个相当手动,繁琐,凌乱的&当我们更新客户端的软件安装时,运行SQL部署脚本的错误方法。我们正在考虑寻找第三方SQL部署工具来自动执行此过程。

但是,我正在推动将自己的SQL部署工具构建到应用程序本身的想法。这很简单 - 在应用程序启动时,它会:

1)检查现有的数据库模式版本(例如“35”)

2)检查“最新”数据库模式版本(例如“38”)

3)从资源文件中检索相关的SQL部署脚本(例如“36”,“37”,“38”)

4)锁定数据库并运行每个必需的SQL部署脚本

请注意,如果发生任何错误,IT技术人员仍会运行此操作,而不是最终用户。

这似乎不正统,但我真的没有看到任何问题。你的想法?

2 个答案:

答案 0 :(得分:2)

我没有看到任何继承错误。 在我工作的公司,他们构建了一个自定义SQL脚本安装程序,允许他们自动将更改应用于数据库,必要时回滚更改,并密切关注已应用的版本。

无论应用程序的预期结果如何,您都需要设置约定(即数据库版本应具有此文件夹结构等)并确定将在运行该工具时使用的需求和流程(即如何自动化,你会做到)

答案 1 :(得分:0)

不要建立自己的。定制解决方案的问题太常见了。

您正在寻找数据库迁移工具,我的建议是liquibase。它可以从命令行运行或集成到构建过程中。对我来说特别有价值的独特功能是生成SQL升级(和降级)脚本,这些脚本在支持生产安装时经常需要我们。

有关替代迁移工具的更详细列表,请参阅以下答案: