代码之家  ›  专栏  ›  技术社区  ›  gyromonotron

是否可以使用MS VS数据库项目作为数据库版本控制的完整解决方案?

  •  3
  • gyromonotron  · 技术社区  · 15 年前

    在我们的项目中,我们有几个生产数据库和许多dev。每个生产数据库代表一些“子项目/本地化版本”。我们使用SQL Server 2008。

    我读了很多关于数据库版本控制和数据库项目的文章,但我仍然有很多问题:

    1. 开发人员应该如何实现

    2. 如何生成100%可行的 无需人工干预(跳过 一些对象,重写一些更改,

    3. 如何使用MS管理数据更改 Visual Studio数据库项目?我 但我认为它不能解决这个问题 问题。(示例:我需要重新映射 一张桌子换一张桌子)。

    1. 开发人员为数据库[ProductionDB]生成并维护数据库项目。

    2. 在新版本中,我使用所有必要的 变化。

    3. 开发人员更改数据库项目并为具体更改编写一些数据操作脚本。

    4. 在新版本中,我将数据库项目部署到[ProductionDB]中,并进行所有必要的更改。

    最后一个问题是:

    注:我已经阅读了以下讨论:

    1. Database changes versioning [closed]
    2. How do I version my MS SQL database in SVN?
    3. Looking for solution for database versioning
    4. Is there a version control system for database structure changes?
    4 回复  |  直到 9 年前
        1
  •  2
  •   Roopesh Shenoy    15 年前

    数据库项目正是由于您在这里提到的大多数原因而使用的-

    1. 开发人员只需签出数据库脚本文件,进行更改,然后将它们签回。请注意,它们将更改.sql文件,而不是直接更改任何dev数据库中的对象。因此,如果需要向数据库表中添加两列,您将修改此表的create table脚本,而不是为此表编写alter脚本。

    2. 如果您有目标旧版本的数据库架构-您可以将这个项目与最新的文件一起部署到该数据库,然后将创建一个部署脚本(带有必要的alter语句)。有一个项目设置允许您选择在“deploy”时是否也应该对数据库运行部署脚本。

    3. 部署脚本可以是一个可交付文件,它可以单独测试prod副本,然后作为补丁应用于prod。

    关于数据操作脚本,我不太确定,但是对于您提到的所有其他目的,数据库项目是完美的。

        2
  •  2
  •   Mike Forman    15 年前

    您所描述的是数据库项目存在的原因。

    回答你的问题:

    1. 如果选中首先删除目标数据库的复选框,则部署项目将生成最新版本。您可以在构建期间调用VSDBCMD,而无需人工干预

    希望这有帮助。

        3
  •  0
  •   David Atkinson    15 年前

    SQL Source Control 工具,它与VS数据库项目具有并行性。好消息是,我们正在积极增加对此的支持,并且应该在圣诞节前有一个早期的版本来试用。如果您感兴趣,只需在 http://www.surveymk.com/s/SqlSourceControl_EapSignup

        4
  •  0
  •   Lucero    15 年前

    你可能想看看开源 bsn ModuleStore toolkit