【发布时间】:2014-04-30 21:47:28
【问题描述】:
当我从 Visual Studio 数据库项目中选择“发布...”时,除其他外,它看起来像是在数据库上运行项目的脚本,但只运行那些将构建操作设置为“构建”的脚本。换句话说,构建操作“无”脚本不会作为发布的一部分在数据库上运行。
我有一个数据库项目,但我没有该项目中的所有数据库项目。 我仍然可以在我的项目中保留脚本(例如,存储过程)并在数据库上运行它们吗?怎么样? 如果我将它们设置为“构建”,则会出现构建错误,因为它们所依赖的项目不在项目中。如果我将它们设置为“无”,它们根本不会在数据库上运行。有没有办法让它们在不需要依赖项的情况下在数据库上运行?如果没有,最好的方法是什么?
【问题讨论】:
-
你能给我们介绍一下为什么整个数据库不在项目中的背景吗?这是第三方数据库吗?尝试了解,以便我们为您提供最佳指导。
-
因为其他人会在这个项目之外更新数据库对象,并且因为数据库很大,我的团队将使用版本控制只负责其中的一部分。
-
如果您将当前数据库的副本拉入 dacpac,然后将其添加为数据库引用,您也许可以避免这种情况。这应该为您提供您正在维护的对象所需的所有依赖项。不过,我不能说它将如何从那里发布。那将是要测试的东西。如果你想走这条路,你还可以编辑该 dacpac 并重新签名以删除额外的对象。
-
仅供参考的脚本 Build Action=None 不应该在发布期间运行,只有在 Build Action 是 PreDeploy 或 PostDeploy 时才运行。最好的方法是通过解决这些依赖关系来修复构建错误。
标签: sql-server visual-studio database-project