我们目前有一个相当手动,繁琐,凌乱的&当我们更新客户端的软件安装时,运行SQL部署脚本的错误方法。我们正在考虑寻找第三方SQL部署工具来自动执行此过程。
但是,我正在推动将自己的SQL部署工具构建到应用程序本身的想法。这很简单 - 在应用程序启动时,它会:
1)检查现有的数据库模式版本(例如“35”)
2)检查“最新”数据库模式版本(例如“38”)
3)从资源文件中检索相关的SQL部署脚本(例如“36”,“37”,“38”)
4)锁定数据库并运行每个必需的SQL部署脚本
请注意,如果发生任何错误,IT技术人员仍会运行此操作,而不是最终用户。
这似乎不正统,但我真的没有看到任何问题。你的想法?
答案 0 :(得分:2)
我没有看到任何继承错误。 在我工作的公司,他们构建了一个自定义SQL脚本安装程序,允许他们自动将更改应用于数据库,必要时回滚更改,并密切关注已应用的版本。
无论应用程序的预期结果如何,您都需要设置约定(即数据库版本应具有此文件夹结构等)并确定将在运行该工具时使用的需求和流程(即如何自动化,你会做到)
答案 1 :(得分:0)
不要建立自己的。定制解决方案的问题太常见了。
您正在寻找数据库迁移工具,我的建议是liquibase。它可以从命令行运行或集成到构建过程中。对我来说特别有价值的独特功能是生成SQL升级(和降级)脚本,这些脚本在支持生产安装时经常需要我们。
有关替代迁移工具的更详细列表,请参阅以下答案: