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

Update Database with Migrations CLI on VS for Mac (DotNet Core 2)

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

dotnet ef migrations add IntitialMigration

然后,我更新了我的数据库:

dotnet ef database update

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

dotnet ef migrations add SecondMigration

并尝试更新数据库:

dotnet ef database update SecondMigration

我收到以下错误:

There is already an object named 'Emails' in the database.

我搜索了一下,找到了一个可能的解决方案:

Add-Migration SecondMigration -IgnoreChanges

但这只适用于 Windows 的 PMC。我正在为 Mac 使用 VS,所有命令都在终端上输入。有人知道如何在更改模型后使用迁移更新数据库吗?

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

如果您只是 运行 更新数据库,它也会尝试使用之前的迁移进行更新。 (这就是为什么它抱怨添加已经存在的内容)。您可以 运行 通过在命令后 运行 添加您想要的迁移名称来仅针对单个迁移进行更新。