Я новичок в PostgreSQL и хочу использовать его с Identity Server 4. Я использую следующие пакеты NuGet: IdentityServer4, IdentityServer4.EntityFramework и Npgsql.EntityFrameworkCore.PostgreSQL
Я пытаюсь выполнить миграциюдля таблиц Identity Server в PostgreSQL.Я изменяю ConfigureServices в Startup.cs с помощью:
string connectionString = "Server=192.168.1.108; Port=5432; Database=postgres; User Id=postgres;Password=mysecretpassword";
var migrationsAssembly = typeof(Startup).GetTypeInfo().Assembly.GetName().Name;
services.AddIdentityServer()
.AddConfigurationStore(options =>
{
options.ConfigureDbContext = builder =>
builder.UseNpgsql(connectionString, action=>
{
action.MigrationsAssembly(migrationsAssembly);
});
});
Когда я запускаю команду Add-Migration, я вижу, что VS готовит всю информацию о миграции для меня (я вижу все необходимые мне таблицы),но когда я запускаю команду Update-Database, я получаю странную ошибку:
Microsoft.EntityFrameworkCore.Infrastructure [10403] Entity Framework Core 2.1.4-rtm-31024 инициализировал «ConfigurationDbContext» с помощью провайдера «Npgsql».EntityFrameworkCore.PostgreSQL 'с параметрами: MigrationsAssembly = MangEx.Users System.TimeoutException: истекло время ожидания операции.в Npgsql.NpgsqlConnector.Connect (тайм-аут NpgsqlTimeout) в C: \ projects \ npgsql \ src \ Npgsql \ NpgsqlConnector.cs: строка 703 в Npgsql.NpgsqlConnector.RawOpen (NpgsqlTimeout в качестве тайм-аута для отмены \ выходных данных;npgsql \ src \ Npgsql \ NpgsqlConnector.cs: строка 555 в Npgsql.NpgsqlConnector.Open (тайм-аут NpgsqlTimeout, логический асинхронный, CancellationToken cancellationToken) в C: \ projects \ npgsql \ src \ Npgsl.lg: npgs.lg. <> c__DisplayClass32_0.d.MoveNext () в C: \ projects \ npgsql \ src \ Npgsql \ NpgsqlConnection.cs: строка 270 --- Конец трассировки стека из предыдущего расположения, где было сгенерировано исключение --- в Npgsql.NpgsqlConnection.Open () в C: \ projects \ npgsql \ src \ Npgsql \ NpgsqlConnection.cs: строка 153 в Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlDatabaseCreator.Exists () в C: \ projects \ EFCore.PG \ EOR.SGInternal \ NpgsqlDatabaseCreator.cs: строка 216 в Microsoft.EntityFrameworkCore.Migrations.HistoryRepository.Exists ()
в Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate (String targetMigration) в Microsoft.EntityFractionsOternal..UpdateDatabase (String targetMigration, String contextType) в Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabase. <> C__DisplayClass0_1. <. Ctor> b__0 () в Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Exceptionout.
Я использую PostgreSQL через Docker, и это активный контейнер, плюс я запускаю pgAdmin4 в качестве контейнера Docker, и он видит контейнер PostgreSQL.
Возможно, мне не хватает чего-то тривиального, но, как я сказал, я совершенно новичок в PostgreSQL, поэтому яне могу точно определить причину этой ошибки.
Буду признателен за любые выводы.