Raj*_*ore 6 sql sql-server database-project visual-studio-2008
SQL Server 2008的Visual Studio 2008数据库项目
该项目具有预部署和后部署SQL脚本的占位符.他们工作 - 好吧,大多数时候反正.
该项目有一个Always-Recreate-Database选项:删除现有数据库,每次都创建一个新的热门数据库.
当我部署我的数据库时,整个SQL脚本被放在一起并执行.
我的数据库用于复制,作为部署后脚本的一部分,我将服务器指定为分发,创建复制并向其添加文章.
因此,我必须关闭复制.而这个合理的地方就是预部署.
VS2008很快就擦掉了脸上露出的笑容.如果选中了Always-Recreate-Database,那么它会删除脚本并重新创建数据库,然后放置我的预部署脚本,然后放置其他所有内容.
有没有办法让我更改数据库项目的模板,以便在任何部署发生之前执行预部署SQL脚本.
这可能不完全是您想要的,但它可能会帮助您解决问题。快速浏览后,我认为部署前和部署后脚本的顺序可能很难更改。
据我了解,构建项目中有一些钩子允许您在部署开始之前执行自己的代码。
PreDeployEvent在 .dbproj 文件中定义属性。BeforeDeploy在 .dbproj 文件中定义目标。我认为,其中任何一个都应该在正确的时间点执行。
如果您使用该PreDeployEvent属性,则需要指定要执行的单个命令行。一个粗略的例子:
<PropertyGroup>
<PreDeployEvent>sqlcmd.exe -i myscript.sql</PreDeployEvent>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
如果您想要更多控制,请使用BeforeDeploy允许您运行一个或多个自定义 msbuild 任务的目标。这是另一个粗略的例子:
<Target Name="BeforeDeploy">
<Message Text="BeforeDeploy" Importance="high" />
</Target>
Run Code Online (Sandbox Code Playgroud)
顺便说一下,有很多免费的自定义任务,例如www.msbuildextensionpack.com上的任务。
| 归档时间: |
|
| 查看次数: |
3959 次 |
| 最近记录: |