Обновление EF Core не работает после игры с некоторыми входами/ролями в PostgreSQL. ⇐ C#
Обновление EF Core не работает после игры с некоторыми входами/ролями в PostgreSQL.
Я пытаюсь обновить уже существующую базу данных (сначала код). Таблица __EFMigrationsHistory уже существует и должна быть только обновлена.
Это ошибка, которая возникла у меня, поскольку я внес некоторые изменения в свою базу данных, чтобы создать ReadOnlyUser.
ПРИМЕЧАНИЕ (с французского на английский)
[*]На французском языке: 42P07: отношение « __EFMigrationsHistory » существует уже давно [*]Русский: 42P07: отношение «__EFMigrationsHistory» уже существует
Мне кажется, что это звучит в соответствии с первым выбором, и поскольку таблица «__EFMigrationsHistory» уже существует, ЭТО первый параметр «1», который звучит так, как будто не заменяется соответствующим значением. Я никогда не видел «SELECT 1» в своей жизни, для меня это звучит странно. Может быть, он не находит подходящую базу данных/схему? Я могу без проблем сделать любой выбор из DBeaver. Я не понимаю.
ОШИБКА:
PM> update-database -Context MicroReseauDbContext Сборка началась... Сборка прошла успешно. 2023-11-06 17:13:56.987 CoreEventId.SensitiveDataLoggingEnabledWarning[10400] (Microsoft.EntityFrameworkCore.Infrastructure) Включена регистрация конфиденциальных данных. Записи журнала и сообщения об исключениях могут включать конфиденциальные данные приложения; этот режим следует включать только во время разработки. ВЫБЕРИТЕ 1 ИЗ pg_catalog.pg_class c ПРИСОЕДИНЯЙТЕСЬ к pg_catalog.pg_namespace n ON n.oid=c.relnamespace ГДЕ n.nspname='public' И c.relname='__EFMigrationsHistory' ) ВЫБЕРИТЕ 1 ИЗ pg_catalog.pg_class c ПРИСОЕДИНЯЙТЕСЬ к pg_catalog.pg_namespace n ON n.oid=c.relnamespace ГДЕ n.nspname='public' И c.relname='__EFMigrationsHistory' ) Не удалось выполнить DbCommand (7 мс) [Parameters=[], CommandType='Text', CommandTimeout='30'] СОЗДАТЬ ТАБЛИЦУ "__EFMigrationsHistory" ( Символ миграции_id варьируется (150) НЕ НУЛЬ, переменный символ product_version (32) НЕ NULL, CONSTRAINT pk___ef_migrations_history ПЕРВИЧНЫЙ КЛЮЧ (migration_id) ); сбой: 2023-11-06 17:13:57.495 RelationalEventId.CommandError[20102] (Microsoft.EntityFrameworkCore.Database.Command) Не удалось выполнить DbCommand (7 мс) [Parameters=[], CommandType='Text', CommandTimeout='30'] СОЗДАТЬ ТАБЛИЦУ "__EFMigrationsHistory" ( Символ миграции_id варьируется (150) НЕ НУЛЬ, переменный символ product_version (32) НЕ NULL, CONSTRAINT pk___ef_migrations_history ПЕРВИЧНЫЙ КЛЮЧ (migration_id) ); Npgsql.PostgresException (0x80004005): 42P07: отношение « __EFMigrationsHistory » уже существует в Npgsql.Internal.NpgsqlConnector.g__ReadMessageLong|234_0 (соединитель NpgsqlConnector, логическое асинхронное значение, DataRowLoadingMode dataRowLoadingMode, логическое чтениеNotifications, логическое значение isReadingPrependedMessage) в Npgsql.NpgsqlDataReader.NextResult (логическое значение async, логическое значение isConsuming, CancellationToken cancelToken) в Npgsql.NpgsqlDataReader.NextResult (логическое значение async, логическое значение isConsuming, CancellationToken cancelToken) в Npgsql.NpgsqlDataReader.NextResult() в Npgsql.NpgsqlCommand.ExecuteReader (поведение CommandBehavior, логическая асинхронность, CancellationToken cancelToken) в Npgsql.NpgsqlCommand.ExecuteReader (поведение CommandBehavior, логическая асинхронность, CancellationToken cancelToken) в Npgsql.NpgsqlCommand.ExecuteNonQuery (логический async, CancellationToken cancelToken) в Npgsql.NpgsqlCommand.ExecuteNonQuery() в Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteNonQuery(RelationalCommandParameterObjectparameterObject) в Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration) в Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.UpdateDatabase(String targetMigration, String ConnectionString, String contextType) в Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabaseImpl(String targetMigration, String ConnectionString, String contextType) в Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabase.c__DisplayClass0_0.b__0() в Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute (Действие-действие) Данные об исключении: Серьезность: ОШИБКА Состояние SQL: 42P07 MessageText: отношение « __EFMigrationsHistory » уже существует Файл: heap.c Линия: 1202 Процедура: heap_create_with_catalog 42P07: отношение « __EFMigrationsHistory » существует уже давно
Я пытаюсь обновить уже существующую базу данных (сначала код). Таблица __EFMigrationsHistory уже существует и должна быть только обновлена.
Это ошибка, которая возникла у меня, поскольку я внес некоторые изменения в свою базу данных, чтобы создать ReadOnlyUser.
ПРИМЕЧАНИЕ (с французского на английский)
[*]На французском языке: 42P07: отношение « __EFMigrationsHistory » существует уже давно [*]Русский: 42P07: отношение «__EFMigrationsHistory» уже существует
Мне кажется, что это звучит в соответствии с первым выбором, и поскольку таблица «__EFMigrationsHistory» уже существует, ЭТО первый параметр «1», который звучит так, как будто не заменяется соответствующим значением. Я никогда не видел «SELECT 1» в своей жизни, для меня это звучит странно. Может быть, он не находит подходящую базу данных/схему? Я могу без проблем сделать любой выбор из DBeaver. Я не понимаю.
ОШИБКА:
PM> update-database -Context MicroReseauDbContext Сборка началась... Сборка прошла успешно. 2023-11-06 17:13:56.987 CoreEventId.SensitiveDataLoggingEnabledWarning[10400] (Microsoft.EntityFrameworkCore.Infrastructure) Включена регистрация конфиденциальных данных. Записи журнала и сообщения об исключениях могут включать конфиденциальные данные приложения; этот режим следует включать только во время разработки. ВЫБЕРИТЕ 1 ИЗ pg_catalog.pg_class c ПРИСОЕДИНЯЙТЕСЬ к pg_catalog.pg_namespace n ON n.oid=c.relnamespace ГДЕ n.nspname='public' И c.relname='__EFMigrationsHistory' ) ВЫБЕРИТЕ 1 ИЗ pg_catalog.pg_class c ПРИСОЕДИНЯЙТЕСЬ к pg_catalog.pg_namespace n ON n.oid=c.relnamespace ГДЕ n.nspname='public' И c.relname='__EFMigrationsHistory' ) Не удалось выполнить DbCommand (7 мс) [Parameters=[], CommandType='Text', CommandTimeout='30'] СОЗДАТЬ ТАБЛИЦУ "__EFMigrationsHistory" ( Символ миграции_id варьируется (150) НЕ НУЛЬ, переменный символ product_version (32) НЕ NULL, CONSTRAINT pk___ef_migrations_history ПЕРВИЧНЫЙ КЛЮЧ (migration_id) ); сбой: 2023-11-06 17:13:57.495 RelationalEventId.CommandError[20102] (Microsoft.EntityFrameworkCore.Database.Command) Не удалось выполнить DbCommand (7 мс) [Parameters=[], CommandType='Text', CommandTimeout='30'] СОЗДАТЬ ТАБЛИЦУ "__EFMigrationsHistory" ( Символ миграции_id варьируется (150) НЕ НУЛЬ, переменный символ product_version (32) НЕ NULL, CONSTRAINT pk___ef_migrations_history ПЕРВИЧНЫЙ КЛЮЧ (migration_id) ); Npgsql.PostgresException (0x80004005): 42P07: отношение « __EFMigrationsHistory » уже существует в Npgsql.Internal.NpgsqlConnector.g__ReadMessageLong|234_0 (соединитель NpgsqlConnector, логическое асинхронное значение, DataRowLoadingMode dataRowLoadingMode, логическое чтениеNotifications, логическое значение isReadingPrependedMessage) в Npgsql.NpgsqlDataReader.NextResult (логическое значение async, логическое значение isConsuming, CancellationToken cancelToken) в Npgsql.NpgsqlDataReader.NextResult (логическое значение async, логическое значение isConsuming, CancellationToken cancelToken) в Npgsql.NpgsqlDataReader.NextResult() в Npgsql.NpgsqlCommand.ExecuteReader (поведение CommandBehavior, логическая асинхронность, CancellationToken cancelToken) в Npgsql.NpgsqlCommand.ExecuteReader (поведение CommandBehavior, логическая асинхронность, CancellationToken cancelToken) в Npgsql.NpgsqlCommand.ExecuteNonQuery (логический async, CancellationToken cancelToken) в Npgsql.NpgsqlCommand.ExecuteNonQuery() в Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteNonQuery(RelationalCommandParameterObjectparameterObject) в Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration) в Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.UpdateDatabase(String targetMigration, String ConnectionString, String contextType) в Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabaseImpl(String targetMigration, String ConnectionString, String contextType) в Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabase.c__DisplayClass0_0.b__0() в Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute (Действие-действие) Данные об исключении: Серьезность: ОШИБКА Состояние SQL: 42P07 MessageText: отношение « __EFMigrationsHistory » уже существует Файл: heap.c Линия: 1202 Процедура: heap_create_with_catalog 42P07: отношение « __EFMigrationsHistory » существует уже давно
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение