【发布时间】:2014-12-24 00:10:35
【问题描述】:
我知道您可以使用 SSDT 在 Visual Studio 中比较和同步数据库之间的数据。但是有没有办法将数据库项目中的数据库数据与实际数据库进行比较?
我们目前使用 RedGate 来同步架构和数据,通常当有人在他们的本地数据库中进行数据更改时,他会将其与 redgate 项目脚本同步并将它们签入 GIT,以便每个人都可以将他们的本地数据库与这些 redgate 脚本同步到保持最新。 RedGate 变得太贵了,我们正在寻找替代品,看起来 Visual Studio 有 SSDT 允许做这些事情。
所以我能够在 VS 中创建一个数据库项目并从数据库中导入架构,所以现在所有开发人员都可以在架构更改时保持最新状态,但它没有选择对数据库数据做同样的事情。没有创建数据脚本(并将它们添加到数据库项目)以与 DB 进行比较的选项,正如我所说,它只允许您在 DB 之间进行数据比较,但不能在 DB 和 DB 项目脚本之间进行数据比较,至少这是我发现的远的。有没有办法做到这一点,以便我们可以包含数据脚本并能够将它们与 DB 同步?
【问题讨论】:
-
据我所知,项目中的数据无法与数据库同步。这没有多大意义。您可能可以编写一些东西来查看各种表并以可重用的方式同步这些数据,但是没有内置的东西可以做到这一点。即使是“bacpac”文件也使用 bcp 作为数据,所以没有太大帮助。我认为您可以保存数据比较(虽然不是很好),但最好的办法是此时在部署前/部署后脚本中维护数据。 :-/
-
谢谢,我在考虑部署前/部署后脚本,但我们有很多表和数据,据我了解,您需要为每个表更新这些脚本,即它没有t 一次输出所有表的数据脚本,是吗?
-
我认为它确实如此,但我已经有一段时间没有在那个规模上使用它了。您可能需要考虑一两个 Red Gate SQL Data Compare Pro 许可证,生成启动脚本,并使用它们来帮助您入门。然后从同一个巨大/启动脚本开始,与每个人一起做与您的个人工作项目相关的增量。如果你想走这条路,你甚至可以只为“新”/空数据库调用那个巨大的脚本。
-
与将数据库中的架构更改拉入VS相关:stackoverflow.com/questions/29333409/…
-
@tbone,一点关系都没有……
标签: visual-studio visual-studio-2013 sql-server-data-tools database-project