迁移尝试创建已存在的序列

时间:2017-10-19 03:40:59

标签: postgresql .net-core entity-framework-core ef-migrations npgsql

我的.net-core 2.0应用程序的PostgreSQL数据库中有一个名为checklist的表,并且刚刚在this doc之后添加了Identity Core。 之后,我跑了:

dotnet ef migrations add identity
dotnet ef database update

更新导致此错误:

Applying migration '20171018061542_InitialCreate'.
fail: Microsoft.EntityFrameworkCore.Database.Command[200102]
      Failed executing DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
      CREATE SEQUENCE "checklist_id_seq" START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE NO CYCLE;
Npgsql.PostgresException (0x80004005): 42P07: relation "checklist_id_seq" already exists

Identity Core是否也会使用名为checklist的表,或者我在某处犯了错误?

编辑:Identity未添加核对表表和序列checklist_id_seq。他们甚至在此之前就是一个.net核心项目(首先是EF数据库) 我最近添加了迁移,并且在初始迁移中存在checklist_id_seq的行。 我的所有表都存在于20171018061542_InitialCreate.Designer.cs(初始迁移)和20171019031817_identity.Designer.cs(我做的迁移,我想创建Identity使用的表)

所以我想问题是如何使用“身份”迁移中的新表来更新数据库?

Edit2 :似乎这是EF Core Migrations的问题。请参阅this SO question以及这些问题:42372167

1 个答案:

答案 0 :(得分:2)

解决方法:
在初始迁移的Up(MigrationBuilder migrationBuilder)方法中注释掉所有内容。