我是否可以指定DACPAC只能在数据库存在或不存在时运行?

时间:2017-04-12 20:57:50

标签: sql-server sql-server-data-tools dacpac

我们有一个由两个SQL数据库项目组成的解决方案:

  • model_create 项目包含" dynamic"对象我们不考虑核心模式的一部分,并发布仅在创建新数据库时运行的部署脚本。 model_create 引用 model_core 项目。
  • model_core 项目包含核心数据库对象,并更新随时间变化的参考数据。

是否有任何方法指定 model_create 只应在数据库不存在且必须创建的情况下运行?这些脚本已经是幂等的并且不会插入欺骗,但是有数以万计的插入要忽略。

有没有办法指定 model_core 不能创建新数据库,因为它缺少一些我们只想插入一次的启动数据?类似于发布配置文件设置的相反,表示"始终创建新数据库"。

1 个答案:

答案 0 :(得分:0)

我对你正在做的事情感到有点困惑,不清楚哪个项目引用哪个,据说post部署脚本只是从正在部署的dacpac运行 - 任何引用的dacpacs都没有得到他们的帖子部署脚本运行 - 这有帮助吗?

听起来如果你有一个单独的脚本,那么在ssdt部署之外运行脚本会更好。我仍然会将它保存在ssdt项目中,但只是部署主项目,然后单独部署脚本。

另一种方法是使这些脚本具有相同的功能,我已经在使用脚本之前完成了它,如果你知道c#,你可以获得单独的插入并用它们做一些事情。这取决于你的设置是什么。

希望它有所帮助!