【问题标题】:Should I put my .mdf and .ldf files from my code into Visual Studio Team Services repository我是否应该将 .mdf 和 .ldf 文件从我的代码放入 Visual Studio Team Services 存储库
【发布时间】:2014-05-18 22:03:24
【问题描述】:

如果我创建一个包含所有 sql 对象的 .sqlproj 文件,为什么我需要将我的 mdf、ldf 文件放入 VS Team Services 源存储库? .mdf 不包含所有数据吗?如果这是真的,那么我可能不想将所有数据存储在我的仓库中?如果我需要重新创建数据库,我总是可以将数据库发布到 localdb 吗?这里有哪些最佳做法?

【问题讨论】:

    标签: mdf azure-devops ldf


    【解决方案1】:

    您不会对实际的 .MDF 和 .LDF 文件进行源代码控制;它们包含您的实际数据。

    但是,有些用例需要控制磁盘上的位置您的 .MDF 和 .LDF 文件的存在位置。在这种情况下,在 .sqlproj 文件中包含一个定义 MDF/LDF 文件位置的文件组文件可能是有意义的。

    例如,假设您有一个大的 D: 驱动器希望存储数据,以及一个由 SSD 组成的高速 E: 驱动器希望存储索引。从您的 .sqlproj 存储文件夹中,您可以:

    • Add New Item > FileGroup,并创建一个名为 Data 的文件组
    • Add New Item > FileGroup,并创建一个名为Index的文件组
    • 添加新项目 > 文件组文件,并创建一个名为 $(DatabaseName).Data.ldf 的文件
    • 添加新项目 > 文件组文件,并创建一个名为 $(DatabaseName).Indexes.ldf 的文件

    然后,您可以修改表以包含这样的 ON {FileGroup} 子句:

    CREATE TABLE [dbo].[MyTable] (
      MyTableID INT IDENTITY(1,1) NOT NULL,
      OtherIndexField NVARCHAR(50) NULL,
      ...
      CONSTRAINT [PK_MyTable] PRIMARY KEY CLUSTERED ([MyTableID] ASC) 
    ) ON [Data];
    
    CREATE NONCLUSTERED INDEX [IX_MyTableByOtherIndexField]
        ON [dbo].[MyTable]([OtherIndexField] ASC)
        ON [Index];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多