Entity framework core 保持数据库与ef核心的同步

Entity framework core 保持数据库与ef核心的同步,entity-framework-core,entity-framework-core-migrations,Entity Framework Core,Entity Framework Core Migrations,我读过多篇关于这一点的帖子,但还没有一个明确的答案。 我们正在向全公司范围内的EF Core 2.0过渡,一次一个项目 挑战在于: 启动一个新项目,并使用代码优先、迁移等创建一个数据库 另一个程序员需要创建一个针对同一数据库的项目 这个程序员可以使用scaffoldbcontext并生成当前模型 然而,需要一个新的列,第二个程序员添加了它 现在…我们如何最好地更新其他项目? 是否有检查和同步或显示模型与数据库之间不同步的内容?意思是检查数据库中的更改…而不是模型 如果这是最好的解决方案,我们不介

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

挑战在于:

  • 启动一个新项目,并使用代码优先、迁移等创建一个数据库
  • 另一个程序员需要创建一个针对同一数据库的项目
  • 这个程序员可以使用scaffoldbcontext并生成当前模型
  • 然而,需要一个新的列,第二个程序员添加了它
  • 现在…我们如何最好地更新其他项目? 是否有检查和同步或显示模型与数据库之间不同步的内容?意思是检查数据库中的更改…而不是模型


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

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

    利用每个开发人员在他们的解决方案中都有项目,可以在本地对其进行更改。 然后我们可以在VS中进行“模式比较”

    在过去的三周里,我们已经成功地为我们中的4人广泛使用了该软件,几乎没有任何问题

    这甚至可以使存储过程的版本和更改保持最新。 它也可以与VST配合使用

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

    论坛上有很多相关的问题/答案:

    您可以制作一个工具,该工具将运行
    添加迁移
    命令,并检查其是否生成非空迁移。如果它生成空迁移,则意味着模型中没有任何更改。但是,如果其他人更改了数据库,我认为这不会引起注意,是吗?因此,无论是谁更改了数据库,他/她都有责任在模型中生成更改,否则您必须运行
    Scaffold DbContext
    。我的建议是不要将代码优先和数据库优先的方法混合在一起。如果有必要,则管理多个DBS,但这不是一个选项。我们有一个单独的数据库,它是首先使用代码创建的。然后,另一个项目需要以该数据库为目标。我的问题有两个:第一,那个人应该手工复制模型吗?第二,无论模型如何实现,我们现在有两个项目使用同一个数据库,一个或多个项目需要进行更改。其他团队是如何处理这个问题的?我不明白你的意思,你能说得更清楚些吗