【问题标题】:Best way to manage SQL Server on developer, test, staging, and production environments through Visual Studio 2013通过 Visual Studio 2013 在开发人员、测试、暂存和生产环境中管理 SQL Server 的最佳方式
【发布时间】:2014-02-06 00:12:14
【问题描述】:

我在MS Blogstackoverflowthis article 上阅读了一篇文章

它们确实为我的场景提供了一些启示,但我觉得我可能遗漏了一些东西......

上面的第三篇文章很好地解释了一种部署数据库版本(包括架构和数据)的可能方法......但面向部署到生产环境。

我希望简化将 DBProj 部署到开发人员数据库实例、测试、登台和生产的流程。(所有都是 SQL2012 标准版)

在开发者实例上,它们可能有几个版本...我们有一些承包商离开了,在新的承包商尝试部署之前可能需要几个开发周期。

另外,如何让目标上的架构自行清理?我知道我们可以关闭删除模式对象的限制,但是在开发人员工作站实例上,登录与其他环境不同,我们不希望删除那些!!!第二篇文章对此有一些线索,但在我尝试时不起作用。我们在所有环境中都有一个应用程序角色,并且根据环境,正确的登录信息会放置在其中。

我有一种感觉,我可能不得不提议更改我们的架构,这可能不会很好地适应其他线索。

如果有人拥有经过验证的真实流程,可以无缝部署到上述 4 个环境,我将不胜感激。

谢谢!

【问题讨论】:

    标签: sql-server visual-studio-2012


    【解决方案1】:

    您可能对 Red Gate 的 Deployment ManagerSQL Source Control 感兴趣(完全公开 - 我为 Red Gate 工作)。

    这两种产品用于保持开发环境同步的方法是:

    • 开发人员编辑本地数据库以进行更改(或全部编辑整个团队的共享数据库)
    • 然后,开发人员可以使用 SQL 源代码控制将数据库同步到现有的源代码控制存储库(例如 SVN/Git/TFS)
    • 其他团队成员可以从存储库更新他们的数据库,并将更改应用到他们的本地数据库。

    部署管理器与 CI 服务器一起使用,允许将任何版本的数据库自动部署到一组预定义的环境中。例如,您可能希望在每次提交后自动部署到集成环境。部署到测试/登台/生产环境然后在需要时按按钮部署。

    在底层,它是 Red Gate SQL Compare 比较技术,用于将版本化数据库状态与目标数据库状态进行比较。这意味着任何开发数据库都可以更新到最新状态,即使它比头部修订版旧得多,或者有新成员加入团队。

    您可以在包/存储库中包含过滤器,这些过滤器将排除某些对象(例如用户、角色、键、特定架构)。这意味着您可以将相同的版本/包部署到每个环境,并且不会干扰这些对象。

    如果您有兴趣了解更多信息,我的同事刚刚写了一封great intro blog post with some videos

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-20
      • 1970-01-01
      • 1970-01-01
      • 2023-02-05
      • 1970-01-01
      • 2017-06-29
      • 2015-12-09
      • 1970-01-01
      相关资源
      最近更新 更多