在Mac上的VS(DotNet Core 2)上使用Migration CLI更新数据库

Sér*_*eno 5 database migration command-line-interface .net-core visual-studio-mac

我在VS for Mac上创建了数据库模型,并使用终端进行了迁移:

dotnet ef migrations add IntitialMigration
Run Code Online (Sandbox Code Playgroud)

然后,我更新了数据库:

dotnet ef database update
Run Code Online (Sandbox Code Playgroud)

但是在更改模型并创建另一个迁移之后:

dotnet ef migrations add SecondMigration
Run Code Online (Sandbox Code Playgroud)

并尝试更新数据库:

dotnet ef database update SecondMigration
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

数据库中已经有一个名为“电子邮件”的对象。

我进行了搜索,发现了一个可能的解决方案:

Add-Migration SecondMigration -IgnoreChanges
Run Code Online (Sandbox Code Playgroud)

但这仅适用于Windows上的PMC。我在Mac上使用VS,并且所有命令都在Terminal上键入。有人知道更改模型后如何使用迁移来更新数据库吗?

Sér*_*eno 0

我找到了解决方案。似乎在 VS 2017 for Windows 上,当您添加迁移时,它会自动添加到解决方案中。但是,在 VS for Mac 上,这种情况不会发生。您需要手动将每个新迁移添加到解决方案中。我创建了 InitialMigration 迁移并将其更新到数据库。由于某种原因,我不知道为什么,我从解决方案中删除了迁移,并创建了新的 SecondMigration 迁移。这就是 InitialMigration 上的所有表也都在 SecondMigration 上的原因。