1

当我们更新客户的软件安装时,我们目前有一种相当手动、繁琐、混乱且容易出错的方式来运行 SQL 部署脚本。我们正在考虑寻找一个第三方 SQL 部署工具来自动化这个过程。

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

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

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

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

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

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

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

4

2 回答 2

2

我看不出这有什么遗传上的错误。在我工作过的一家公司,他们构建了一个自定义 SQL 脚本安装程序,允许他们自动将更改应用到数据库,在必要时回滚更改,并密切关注已应用的版本。

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

于 2013-02-25T22:32:45.663 回答
0

不要建立自己的。对于定制解决方案来说,这个问题太常见了。

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

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

于 2013-02-26T22:19:46.387 回答