gpt4 book ai didi

sql-server - VisualStudio SQL 数据库项目 sqlcmdvars TFS 部署覆盖自定义文件路径?

转载 作者:行者123 更新时间:2023-12-03 09:59:50 25 4
gpt4 key购买 nike

我在带有 TFS 2010 的源代码控制中的 VisualStudio 2010 中有一个 SQL 数据库项目,其中有几个分支,每个分支都根据配置文件部署到不同的服务器。

使用 sqlcmdvars 文件,并在每个配置文件的文件名(Debug.sqlcmdvars 等)中附加配置文件,让我可以通过使用 mdf 文件的保留名称 Path1 和 Path2 来指定特定部署环境的唯一文件路径和日志文件。

<?xml version="1.0" encoding="utf-8"?>
<SqlCommandVariables xmlns="urn:Microsoft.VisualStudio.Data.Schema.Package.SqlCmdVars">
<Version>1.0</Version>
<Properties>
<Property>
<PropertyName>Path1</PropertyName>
<PropertyValue>C:\SQLSERVER LOG\$(DatabaseName)\</PropertyValue>
</Property>
<Property>
<PropertyName>Path2</PropertyName>
<PropertyValue>C:\SQLSERVER DATA\$(DatabaseName)\</PropertyValue>
</Property>
</Properties>
</SqlCommandVariables>

现在我正在尝试添加一个带有关联 FileStream FileGroup 的自定义 FileStream 文件

enter image description here

我在 sqlcmdvars 文件中添加了一个额外的条目:
<Property>
<PropertyName>PathBlobStream</PropertyName>
<PropertyValue>C:\SQLSERVER DATA\$(DatabaseName)\BlobStream\</PropertyValue>
</Property>

但我不确定如何告诉数据库在 SchemaObjects\Database Level Objects\Storage\BlobStore.sqlfile.sql 声明的内容上使用它:
ALTER DATABASE [$(DatabaseName)]
ADD FILE (NAME = [BlobStore], FILENAME = 'C:\SQLSERVER DATA\####\BlobStream') TO FILEGROUP [BlobStreamFileGroup];

您如何使用 sqlcmdvars 中的新条目来覆盖新 FileStream 文件的路径?

最佳答案

我发现这样做的最佳方法是在 dbproj 文件中添加其他条目以根据配置文件使用不同的模式文件:

  <ItemGroup Condition=" '$(Configuration)' == 'Debug' ">
<Build Include="Schema Objects\Database Level Objects\Storage\Files\BlobStore.sqlfile.sql">
<SubType>Code</SubType>
</Build>
</ItemGroup>
<ItemGroup Condition=" '$(Configuration)' == 'Internal' ">
<Build Include="Schema Objects\Database Level Objects\Storage\Files\BlobStore.sqlfile.Internal.sql">
<SubType>Code</SubType>
</Build>
</ItemGroup>

关键是复制/粘贴原始模式文件并在文件名中附加配置文件名称。这将使用原始文件名保留调试变体,以便将来的任何模式比较都不会注意到其他变体。您希望在源代码管理中包含其他架构文件,但如果遵循上述条目,它们将不会出现在项目中。我验证了 MSBuild 正确处理了这个问题。我交叉手指,TFS 也会这样做。

关于sql-server - VisualStudio SQL 数据库项目 sqlcmdvars TFS 部署覆盖自定义文件路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7799430/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com