【问题标题】:Automating DB Object Migrations from Source Control从源代码管理自动化数据库对象迁移
【发布时间】:2010-09-08 08:00:00
【问题描述】:

我正在寻找一些“最佳实践”,用于从源代码控制中自动部署存储过程/视图/函数/表更改。我正在使用 StarTeam 和 ANT,因此标签得到处理;我正在寻找的是你们中的一些人如何从源头自动提取这些对象 - 不一定是 StarTeam。

我希望最终得到一个可以执行、签入和标记的脚本。

我不是要求任何人写这些 - 只是一些过去已经(或没有)有效的想法或方法。

我正在努力收拾烂摊子,并希望确保我尽可能地接近“正确”。

我们将表/视图/函数等存储在 StarTeam 的单个文件中,我们的数据库是 SQL 2K5。

【问题讨论】:

    标签: sql-server version-control build-automation starteam


    【解决方案1】:

    我们使用来自 redgate (http://www.red-gate.com/) 的 SQL 比较。

    我们有一个生产数据库,一个开发数据库,​​每个开发人员都有自己的数据库。

    开发数据库与开发人员在签入更改时对其数据库所做的更改同步。

    开发人员还签入同步脚本和 SQL Compare 生成的比较报告。

    当我们部署我们的应用程序时,我们只需使用 SQL Compare 将开发数据库与生产数据库同步。

    这对我们有用,因为我们的应用程序仅供内部使用。如果这不是您的方案,那么我会查看 SQL Packager(也来自 redgate)。

    【讨论】:

      【解决方案2】:

      我更喜欢将视图、过程和触发器(可以随意重新创建的对象)与表分开。对于视图、过程和触发器,只需编写一个作业来检查它们并重新创建最新的。

      对于表,我更喜欢只有一行的数据库版本表。使用该表来确定尚未应用哪些新更新。然后应用每次更新并更新版本号。如果更新失败,您只需检查该更新,并且您可以重新运行,因为之前的更新不会再次发生。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-03-30
        • 1970-01-01
        • 1970-01-01
        • 2017-09-15
        • 2011-12-10
        • 2017-02-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多