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); } }