gpt4 book ai didi

postgresql - Postgres ef-core 更新数据库产生 "42P01: relation "__EFMigrationsHistory“不存在”错误

转载 作者:行者123 更新时间:2023-12-04 02:29:55 26 4
gpt4 key购买 nike

设置

Asp.NET core 网站 2.2 和 EF Core 2.2
具有多个架构且其中一个架构已具有 __EFMigrationsHistory 表的 Postgresql 数据库


尝试时

Add-Migration x1 -Context YodaContext 它有效

但是在尝试以下语句时
Update-Database -Context YodaContext 第一次(我在此架构中没有任何表,这是第一个更新数据库)我看到以下错误。

Failed executing DbCommand (85ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
SELECT "MigrationId", "ProductVersion"
FROM "__EFMigrationsHistory"
ORDER BY "MigrationId";
Npgsql.PostgresException (0x80004005): 42P01: relation "__EFMigrationsHistory" does not exist
at Npgsql.NpgsqlConnector.<>c__DisplayClass161_0.<<ReadMessage>g__ReadMessageLong|0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at Npgsql.NpgsqlConnector.<>c__DisplayClass161_0.<<ReadMessage>g__ReadMessageLong|0>d.MoveNext() in C:\projects\npgsql\src\Npgsql\NpgsqlConnector.cs:line 1032
--- End of stack trace from previous location where exception was thrown ---
at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming) in C:\projects\npgsql\src\Npgsql\NpgsqlDataReader.cs:line 444
at Npgsql.NpgsqlDataReader.NextResult() in C:\projects\npgsql\src\Npgsql\NpgsqlDataReader.cs:line 332
at Npgsql.NpgsqlCommand.ExecuteDbDataReader(CommandBehavior behavior, Boolean async, CancellationToken cancellationToken) in C:\projects\npgsql\src\Npgsql\NpgsqlCommand.cs:line 1218
at Npgsql.NpgsqlCommand.ExecuteDbDataReader(CommandBehavior behavior) in C:\projects\npgsql\src\Npgsql\NpgsqlCommand.cs:line 1130
at System.Data.Common.DbCommand.ExecuteReader()
at Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommand.Execute(IRelationalConnection connection, DbCommandMethod executeMethod, IReadOnlyDictionary`2 parameterValues)
at Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommand.ExecuteReader(IRelationalConnection connection, IReadOnlyDictionary`2 parameterValues)
at Microsoft.EntityFrameworkCore.Migrations.HistoryRepository.GetAppliedMigrations()
at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration)
at Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.UpdateDatabase(String targetMigration, String contextType)
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabase.<>c__DisplayClass0_1.<.ctor>b__0()
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)
42P01: relation "__EFMigrationsHistory" does not exist

我做了什么

  1. 我搜索了这个错误,我发现了这个 bug on github建议的解决方案是手动创建表,我这样做了,但这并没有解决问题。

  2. 我还尝试打开一个新的 .NET 5 项目并安装最新版本的 Npgsql.EntityFrameworkCore.PostgreSQL v 5.0.0 提供程序以连接到该数据库,但我仍然面临这个问题


这个问题没有解决问题EF Core - Table '*.__EFMigrationsHistory' doesn't exist

最佳答案

我遇到了同样的问题,因为我的数据库 (POSTGRESQL) 有另一个包含 ____EFMigrationsHistory 表的架构。我认为这是提供者的错误,在我的情况下是 postgresql 提供者。我在新架构上手动创建了同一张表,然后成功执行了更新数据库命令

关于postgresql - Postgres ef-core 更新数据库产生 "42P01: relation "__EFMigrationsHistory“不存在”错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64875321/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com