diff --git a/MaBibli.Api/Data/FabriqueDbContextConception.cs b/MaBibli.Api/Data/FabriqueDbContextConception.cs
new file mode 100644
index 0000000..a6081fe
--- /dev/null
+++ b/MaBibli.Api/Data/FabriqueDbContextConception.cs
@@ -0,0 +1,33 @@
+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);
+ }
+}