保持数据库同步 ef core

keeping database in sync ef core

我已经阅读了多篇关于此的帖子,但还没有明确的答案。 我们正在全公司范围内过渡到 EF Core 2.0,一次一个项目。

挑战是这样的:

  1. 一个新项目开始,并使用代码优先、迁移等创建数据库
  2. 另一个程序员需要创建一个针对同一数据库的项目。
  3. 该程序员可以使用 Scaffold-DbContext 并生成当前模型。
  4. 但是,需要一个新列,第二个程序员添加了它。

现在...我们如何最好地更新其他项目? 有没有什么东西可以检查和同步或显示模型和数据库之间不同步的地方?意思是检查数据库的变化...不是模型。

如果这是最好的解决方案,我们不介意购买工具。

我们一直在使用的非常成功的解决方案是 Visual Studio 中的数据库项目。

利用每个开发人员在他们的解决方案中都有项目,在本地对其进行更改。 然后我们可以在VS里面做一个"Schema Compare"。

在过去的三周里,我们 4 个人一直在广泛地使用它,几乎没有任何问题。

这甚至有助于使我们的存储过程的版本和更改保持最新。 它也适用于 VSTS。

以下是我阅读的一些帮助我理解它的帖子:

https://www.sqlchick.com/entries/2016/1/10/why-you-should-use-a-ssdt-database-project-for-your-data-warehouse

https://weblogs.asp.net/gunnarpeipman/using-visual-studio-database-projects-in-real-life

..这个论坛有很多相关的 questions/answers: https://social.msdn.microsoft.com/Forums/sqlserver/en-us/home?forum=ssdt