【问题标题】:How to automatically check out a database file in a source controlled web application?如何在源代码控制的 Web 应用程序中自动签出数据库文件?
【发布时间】:2010-04-16 22:57:51
【问题描述】:

我正在开发一个 ASP.NET Web 应用程序,我们是一个小团队(4 名学生),我们无法访问专用服务器来托管数据库实例。因此,对于这个 Web 应用程序,我们决定将数据库文件放在 App_Data 文件夹中。

问题是我们的项目是在 TFS 上进行源代码控制的,所以每次打开解决方案并尝试启动 Web 应用程序时,我们都会收到一个说数据库是只读的异常。这是合乎逻辑的,因为数据库文件不会自动签出。

是否有解决方法可以避免每次打开解决方案时手动签出数据库文件?

谢谢。

【问题讨论】:

    标签: asp.net sql-server database mdf version-control


    【解决方案1】:

    永远不要签入 MDF 文件。您应该使用创建您需要的表和其他数据库对象的部署脚本来开发您的项目。切勿直接从 VS Server Explorer 修改 MDF。使用version based approach to database schema

    我知道你会说“但很难”,但相信我,VS 向导指导你的替代方案要糟糕得多。不仅从团队开发的角度来看,而且从部署的角度来看也是如此。部署站点的 v1 后,您将进行更改并希望部署 v1.1 或 v2。每次,您都会面临同样的困境:您有 4 个 MDF 文件,每个团队成员登记一个,部署站点上一个,根本没有办法对齐模式。您最终会要求使用 SQL 比较工具(例如 SQL Compare),但它们要花很多钱,而且在维护 SQL 模式方面还远非完美。

    此外,将 脚本 作为您的数据库源还可以很好地与所有其他源代码控制功能保持一致,例如追踪谁在何时更改了什么内容。

    【讨论】:

    • 我要看看这个指南。检查 MDF 文件在我看来也有点脏,因为您没有同时与其他开发人员共享同一个实例。我同意你的“很难”部分,因为我没有很多数据库知识,只有基础。但我要看看数据库项目。即使这个答案没有回答我的问题,我也会接受它,因为它让我走上了正确的轨道。谢谢。
    【解决方案2】:

    如果您能够为 Visual Studio 安装“Visual Studio Team System Database Edition”插件(以前称为“Visual Studio Team Edition for Database Professionals”,以前称为“DBPro”),您可以将当前数据库导入到Visual Studio 数据库项目,它可以成为整个 VS 解决方案的一部分。

    这允许您在 Visual Studio 中管理架构对象(表、存储过程、权限等),并将您的数据库架构与 TFS 很好地集成。

    它还允许您将 VS 项目中的架构部署到数据库服务器,自动处理修改而不会导致数据丢失(或者如果数据丢失则失败)。

    VS 2008 的插件位于: http://www.microsoft.com/downloads/details.aspx?FamilyID=bb3ad767-5f69-4db9-b1c9-8f55759846ed&displaylang=en

    【讨论】:

      猜你喜欢
      • 2015-06-04
      • 2014-08-02
      • 1970-01-01
      • 1970-01-01
      • 2011-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-26
      相关资源
      最近更新 更多