private static void Migrate(string connectionString) { void MigrateTaskContext() { try { var migrationOptions = new DbContextOptionsBuilder <TaskContext>().UseNpgsql( connectionString, db => { db.MigrationsHistoryTable(PostgresTaskContextHistoryTableName, Schema.MicrophobiaSchemaName); db.MigrationsAssembly($"{CurrentAssemblyName}.Migrations.Task"); }) .Options; var migrationContext = new TaskContext(migrationOptions); var pendingMigrations = migrationContext.Database.GetPendingMigrations(); if (pendingMigrations != null && pendingMigrations.Any()) { migrationContext.Database.Migrate(); } } catch (Exception ex) { throw new Exception("An error occurred migrating the Task Postgres database.", ex); } } void MigrateSystemLogContext() { try { var migrationOptions = new DbContextOptionsBuilder <SystemLogContext>().UseNpgsql( connectionString, db => { db.MigrationsHistoryTable(PostgresSystemLogContextHistoryTableName, Schema.MicrophobiaSchemaName); db.MigrationsAssembly($"{CurrentAssemblyName}.Migrations.SystemLog"); }) .Options; var migrationContext = new SystemLogContext(migrationOptions); var pendingMigrations = migrationContext.Database.GetPendingMigrations(); if (pendingMigrations != null && pendingMigrations.Any()) { migrationContext.Database.Migrate(); } } catch (Exception ex) { throw new Exception("An error occurred migrating the System Log Postgres database.", ex); } } MigrateTaskContext(); MigrateSystemLogContext(); }
public SystemLogProvider(SystemLogContext context) { _context = context; }