有一个解决方案包含多个具有 DDD 架构的 .NET Core 数据库优先项目。 EF Core 为所有项目搭建了 4 个不同的数据库。由于我们还没有版本控制和发布控制,控制项目和数据库版本的最佳方法是什么?
是否可以切换到代码优先迁移以将数据库更改保留为版本?
目前,所有项目都在 TFS git 存储库上,因此我们有提交和推送的历史记录。
有一个解决方案包含多个具有 DDD 架构的 .NET Core 数据库优先项目。 EF Core 为所有项目搭建了 4 个不同的数据库。由于我们还没有版本控制和发布控制,控制项目和数据库版本的最佳方法是什么?
是否可以切换到代码优先迁移以将数据库更改保留为版本?
目前,所有项目都在 TFS git 存储库上,因此我们有提交和推送的历史记录。
根据Microsoft,答案是肯定的!您首先可以做的是首先通过 dotnet ef dbcontext scaffold
命令(这是 .NET 调用的,reverse engineering)搭建数据库。
这里发生的事情是这样的:
我个人在我的团队很小的时候就这样做了,您所要做的就是在 dotnet ef 中包含包含带有 -p
arg 的 DbContext 的项目和 DbContext 本身(如果包含DbContext 由许多 DbContext 组成)通过 -c
(我想 DDD 不会要求您 -c
)
类似的东西。 dotnet ef migrations add
等其他命令也是如此(老实说,几乎每个 dotnet ef
命令都一样)
dotnet ef database update -c NozomiDbContext -v -p ../Nozomi.Repo