我想实现数据库更改的持续集成。我想知道如何做到这一点以及作为db的CI的一部分我们必须做的活动(例如:create db / execute scripts / xx)。
CI:詹金斯 DB:SQL Server我不想使用像RedGate这样的工具......让我知道你的想法。
由于
答案 0 :(得分:5)
一个可以跟踪和维护数据库架构变更集的好工具是Liquibase。友好的Apache 2.0许可证,多种格式支持在VCS中存储更改集,生成包含更改摘要和其他一些功能的HTML文档的可能性使其成为一个很好的匹配。我目前正在几个项目中使用这个工具非常有效,好东西...
答案 1 :(得分:0)
为了在CI流程中拥有数据库,您必须依赖部署自动化。 自动化包括两个阶段:
生成脚本 - 我希望您同意不应手动完成。
执行并跟踪脚本。
第一阶段至关重要,如果您生成错误的脚本并执行它,您将有垃圾进入垃圾场。
在我看来,第一阶段需要进行基线感知分析,将源,目标与基线进行比较。基线是您在进行更改之前标记的标签,它可以帮助您识别要部署的更改,为保护目标而进行的更改(例如,为关键修复添加到生产中的索引)和您需要合并的冲突(例如,在开发中和生产中更改的过程 - 其他代码行)