Example #1
0
        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;
 }