using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Design;
namespace MaBibli.Api.Data;
///
/// Fabrique le pour les outils (dotnet ef), sans
/// démarrer l'application.
///
///
/// Sans elle, dotnet ef exécute Program.cs pour retrouver les services — et
/// Program.cs appelle Database.Migrate() au démarrage. Écrire une migration
/// suppose alors d'ouvrir la base de développement, ce qui est au mieux inutile et au pire
/// bloquant (constaté sur un système de fichiers réseau, où le verrou SQLite ne se prend
/// jamais : l'outil attendait cinq minutes puis renonçait).
///
/// ⚠️ La chaîne de connexion ci-dessous ne sert qu'à la génération du code : produire
/// une migration n'ouvre aucune base. Elle n'a donc pas à correspondre à quoi que ce soit, et
/// surtout pas à la base de production, qui est configurée par ConnectionStrings__MaBibli
/// dans l'unité systemd.
///
///
public sealed class FabriqueDbContextConception : IDesignTimeDbContextFactory
{
public MaBibliDbContext CreateDbContext(string[] args)
{
var options = new DbContextOptionsBuilder()
.UseSqlite("Data Source=mabibli-conception.db")
.Options;
return new MaBibliDbContext(options);
}
}