![](/img/trans.png)
[英]EF Core Postgres Update-Database is trying to Create Database which already exists
[英]EF Core: update database error: relation "Owner" already exists
我尝试添加迁移:
dotnet ef migrations add InitialCreate
然后更新数据库:
dotnet ef database update
但是,我收到一个错误:
Build started...
Build succeeded.
[21:59:12 INF] OnConfigure finish
Applying migration '20201029182606_InitialCreate'.
执行 DbCommand 失败 (7ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
创建表“所有者”(
“Id”整数 NOT NULL GENERATED BY DEFAULT AS IDENTITY,
声誉整数非空,user_id 整数非空,
user_type 文本 NULL,
profile_image 文本 NULL,
display_name 文本 NULL,
链接文本 NULL,
accept_rate 整数 NULL,
约束“PK_Owner”主键(“Id”)
);Npgsql.PostgresException (0x80004005): 42P07: 关系“所有者”已经存在
在 Npgsql.NpgsqlConnector.<>c__DisplayClass160_0.<g__ReadMessageLong|0>d.MoveNext()
--- 从上一个位置开始的堆栈跟踪结束 ---
在 Npgsql.NpgsqlConnector.<>c__DisplayClass160_0.<g__ReadMessageLong|0>d.MoveNext()
--- 从上一个位置开始的堆栈跟踪结束 ---
在 Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming)
在 Npgsql.NpgsqlDataReader.NextResult()
在 Npgsql.NpgsqlCommand.ExecuteReaderAsync(CommandBehavior 行为,布尔异步,CancellationToken 取消令牌)
在 Npgsql.NpgsqlCommand.ExecuteNonQuery(布尔异步,CancellationToken 取消令牌)
在 Npgsql.NpgsqlCommand.ExecuteNonQuery()异常数据:
严重性:错误
SqlState: 42P07
消息文本:关系“所有者”已存在
文件:heap.c
线路:1155
例程:heap_create_with_catalog
42P07:关系“所有者”已经存在
在我的 github 上,我存储模型(和其他服务源代码)。 我从 ApplicationContext 文件中删除了“EnsureCreate”代码。
如何解决这个错误? 谢谢!
PS我删除了存储连接字符串的文件appsettings.json:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
"ConnectionStrings": {
"Questions": "Host=localhost;Port=5432;Database=questiondb;Username=postgres;Password=password"
},
"Tags": [
"ef core",
"c#",
"asp.net core",
"asp.net core webapi"
]
}
在您的第 38 行中,我看到您使用已归档但您需要使用该属性的问题。
public Owner Owner { get; set; }
但是你用
public Owner owner { get; set; }
这是一个问题。
另一个解决方案:据我了解,您的问题是所有者表关系已经存在。 所以删除不必要的关系或使用 Fluent Api。
使用 DB Management Studio 或命令行删除Owner
表,然后再次运行迁移。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.