Creo un progetto in cui vorrei connettermi a un provider SQLite a scopo di test e utilizzare PostgreSQL in produzione.
protected override void OnConfiguring(DbContextOptionsBuilder opt)
{
#if DEBUG
opt.UseSqlite("Data Source=blogging.db");
#endif
#if !DEBUG
opt.UseNpgsql("Host=localhost;Database=xxxx;Username=xxxxx;Password=xxxxx");
#endif
}
Vorrei usare la strategia in codice primo. Per SQLite - nessun problema:
dotnet ef migrations add InitialCreate
dotnet ef database update
In conclusione, esiste una soluzione simile per PostgeSQL (OpenSource)?
Sto lavorando con PostgreSQL proprio come stai dicendo.
Uso questi 2 pacchetti nugget:
E aggiungo solo questo al tuo Startup.cs -> ConfigureServices:
options.UseNpgsql(Configuration.GetConnectionString("DefaultConnection")));
E questo su appsettings.json
"ConnectionStrings": {
"DefaultConnection": "Server=localhost;Port=5432;Database=postgresTest;User Id=postgres;Password=xyz;"
}
E poi aggiungo solo una migrazione e aggiorno il DB:
Quindi tutto funziona bene. Spero che questo possa aiutarti :)