diff options
Diffstat (limited to 'Jellyfin.Database/Jellyfin.Database.Providers.PgSql/Migrations/PgSqlDesignTimeJellyfinDbFactory.cs')
| -rw-r--r-- | Jellyfin.Database/Jellyfin.Database.Providers.PgSql/Migrations/PgSqlDesignTimeJellyfinDbFactory.cs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/Jellyfin.Database/Jellyfin.Database.Providers.PgSql/Migrations/PgSqlDesignTimeJellyfinDbFactory.cs b/Jellyfin.Database/Jellyfin.Database.Providers.PgSql/Migrations/PgSqlDesignTimeJellyfinDbFactory.cs new file mode 100644 index 000000000..bf949d570 --- /dev/null +++ b/Jellyfin.Database/Jellyfin.Database.Providers.PgSql/Migrations/PgSqlDesignTimeJellyfinDbFactory.cs @@ -0,0 +1,25 @@ +using Jellyfin.Server.Implementations; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Design; +using Microsoft.Extensions.Logging.Abstractions; + +namespace Jellyfin.Database.Providers.PgSql +{ + /// <summary> + /// The design time factory for <see cref="JellyfinDbContext"/>. + /// This is only used for the creation of migrations and not during runtime. + /// </summary> + internal sealed class PgSqlDesignTimeJellyfinDbFactory : IDesignTimeDbContextFactory<JellyfinDbContext> + { + public JellyfinDbContext CreateDbContext(string[] args) + { + var optionsBuilder = new DbContextOptionsBuilder<JellyfinDbContext>(); + optionsBuilder.UseNpgsql(f => f.MigrationsAssembly(GetType().Assembly)); + + return new JellyfinDbContext( + optionsBuilder.Options, + NullLogger<JellyfinDbContext>.Instance, + new PgSqlDatabaseProvider(null!, NullLogger<PgSqlDatabaseProvider>.Instance)); + } + } +} |
