Sono nuovo di PostgreSQL e vorrei usarlo con Identity Server 4. Sto usando i prossimi pacchetti NuGet: IdentityServer4, IdentityServer4.EntityFramework e Npgsql.EntityFrameworkCore.PostgreSQL
Sto cercando di eseguire la migrazione per le tabelle di Identity Server su PostgreSQL. Sto modificando ConfigureServices in Startup.cs con:
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);
});
});
Quando eseguo il comando Add-Migration, posso vedere che VS prepara tutte le informazioni sulla migrazione per me (posso vedere tutte le tabelle di cui ho bisogno), ma quando eseguo il comando Update-Database ottengo qualche strano errore:
Microsoft.EntityFrameworkCore.Infrastructure [10403] Entity Framework Core 2.1.4-rtm-31024 inizializzato 'ConfigurationDbContext' utilizzando il provider 'Npgsql.EntityFrameworkCore.PostgreSQL' con opzioni: MigrationsAssembly = MangEx.Users System.TimeoutException: scaduto l'operazione. at Npgsql.NpgsqlConnector.Connect (timeout NpgsqlTimeout) in C: \ projects \ npgsql \ src \ Npgsql \ NpgsqlConnector.cs: riga 703 a Npgsql.NpgsqlConnector.RawOpen (annullamento NpgsqlTen npgsql \ src \ Npgsql \ NpgsqlConnector.cs: riga 555 su Npgsql.NpgsqlConnector.Open (timeout NpgsqlToutout, asincrono booleano, cancellazione annullata considerata in C: \ progetti \ npgsql \ sqcnqqpg: Npgsql.npg . <> c__DisplayClass32_0. <g__OpenLong | 0> d.MoveNext () in C: \ projects \ npgsql \ src \ Npgsql \ NpgsqlConnection.cs: riga 270 --- Fine della traccia dello stack dalla posizione precedente in cui è stata generata l'eccezione --- at Npgsql.NpgsqlConnection.Open () in C: \ progetti \ npgsql \ src \ Npgsql \ NpgsqlConnection.cs: linea 153 in Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.Npgsql \oreConfigurazione: Database PG \ src \ EFCore.PG \ Storage \ Internal \ NpgsqlDatabaseCreator.cs: linea 216 su Microsoft.EntityFrameworkCore.Migrations.HistoryRep ository.Exists ()
su Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate (String targetMigration) su Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.UpdateDatabase (String targetMigration, String contextType) at Microsoft.EntityFrameworkCore.DesD.d.lay.Dor_Doc.Dor.Dor.Dor_Doc.Dor_Doc.Op> <.ctor> b__0 () su Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute (azione azione) L'operazione è scaduta.
Sto eseguendo PostgreSQL tramite Docker ed è un contenitore attivo, inoltre sto eseguendo pgAdmin4 come contenitore Docker e sta vedendo il contenitore PostgreSQL.
Probabilmente mi manca qualcosa di banale, ma come ho detto, sono completamente nuovo in PostgreSQL, quindi non riesco a individuare la causa di questo errore.
Gradirei qualsiasi indizio.
È stato un mio errore. Ho eseguito l'immagine docker di PostgreSQL senza aprire la porta al mondo esterno. Quando ho eseguito quell'immagine con -p 5432: 5432, sono riuscito a migrare le tabelle di Identity Server nel database.