【问题标题】:Do Data Tier Application Projects replace Database Projects from Visual Studio Database Edition?数据层应用程序项目是否会替换 Visual Studio 数据库版中的数据库项目?
【发布时间】:2010-11-20 22:47:39
【问题描述】:

我对 Data Tier Applications 的功能以及 Database Projects 在 Visual Studio 的数据库版中所做的事情只是稍微熟悉。

这两种不同的数据库版本控制解决方案是重叠的吗?或者数据层应用程序功能是否完全取代了使用 Visual Studio 数据库版本和数据库项目的需要?

【问题讨论】:

    标签: sql-server database sql-server-2008-r2 sql-server-data-tools


    【解决方案1】:

    DAC 提供了一种应用程序模型,可用作开发人员和 DBA 之间的接口。开发人员编辑模型,DBA 管理/部署模型。例如,一旦构建或提取模型,就可以将其部署到多个服务器。

    将 .dacpac 想象成一个 .exe。开发人员构建一个 .exe 并将其交给某人。在这一点上,如果开发人员不必担心 .exe 的运行位置会很好,因为 .exe 在内部是一致的——它要么运行,要么不运行。为什么开发人员需要担心专门针对 2008、2005 或 Azure?只需开发应用模型,让 DAC 处理其余的事情......

    拥有此部署工件还提供了一些新功能。示例包括版本化部署、确定自上次部署或升级后是否有人更改数据库的能力、在不同目标服务器中创建相同数据库的能力。

    您喜欢为各种数据库管理升级脚本库吗?如果可以在任何时间点构建或捕获(提取)数据库的整个状态,那不是很好吗?

    VS 2010 中的数据库应用程序项目 mashup 将在即将发布的以数据库为中心的开发人员工具中得到解决。投资 dbschema 或 DAC 不会影响前向兼容性。

    【讨论】:

    • 非常感谢您提供这个额外的答案。你真的帮助澄清了 DAC。
    【解决方案2】:

    目前,数据库项目和数据层项目之间的区别在于部署点。如果您想创建一个 dacpac,您将使用数据层项目。如果你想创建一个 .dbschema 和 sql 迁移文件,你会使用传统的数据库项目。

    据我所知,数据层应用程序预计在未来对 SQL Azure 部署很重要。

    除非您专门研究 SQL Azure,否则我现在会使用数据库项目。这完全取决于您要达到的目标。 SQL Source Control(我工作的公司 Red Gate)可能更适合您的需求。

    【讨论】:

    • 感谢您正确看待这两个微软产品。我也一定会仔细研究贵公司的解决方案。感谢您的建议!
    • 我们希望在明年晚些时候“支持”SQL 源代码控制中的数据库项目,但这一业务决策将依赖于数据库项目的增加。
    • 我想知道您对当前情况的看法。似乎 VS 2013+“数据库项目”在您构建它们时会吐出 dacpac 文件。数据层应用程序是否仍然存在?这两个概念合并了吗?
    • 是的,Microsoft 将数据库项目和数据层应用程序合并到新的 SSDT 数据库项目中。 dacpac 是与目标进行比较以生成脚本的部署工件。许多人认为更安全的部署机制是使用迁移脚本,例如准备就绪。
    【解决方案3】:

    我相信 Visual Studio 数据库项目是针对开发人员的。

    数据层应用程序面向 DBA。详情请见this blog

    【讨论】:

    • 但是数据层应用程序应该由“数据库开发人员”而不是 DBA 构建。它们应该是在视觉工作室中构建的,而不是 SSMS
    • 我认为这个想法是 dacpacs 由开发人员构建,但移交给 DBA 以便使用 SSMS 中的向导轻松部署。数据库项目的输出是一个 sql 文件,该文件也传递给 DBA,并且必须针对目标服务器运行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多