public MigrationsProvider(DBMigratorProps dbMigratorProps, MigrationScriptExecutor _migrationScriptExecutor) { dbContext = dbMigratorProps.dbContext; dbServices = dbMigratorProps.dbServices; migrationName = dbMigratorProps.migrationName; snapshotHistoryLimit = dbMigratorProps.snapshotHistoryLimit; migrationScriptExecutor = _migrationScriptExecutor; dbMigrateDependencies = dbServices.GetRequiredService <MigrationsScaffolderDependencies>(); migrationMetadata = new AutoMigratorTable(dbMigratorProps.dbMigratorTableMetatdata); }
public MigrationsProvider Build(DBMigratorProps dBMigratorProps, MigrationScriptExecutor migrationScriptExecutor) { string extensionMethod = $"{dBMigratorProps.dbContext.Database.ProviderName.Split('.').Last()}DBMigrations"; List <MethodInfo> contextMigrationMethods = Utilities.Utilities.GetExtensionMethods(extensionMethod, typeof(DbContext)).ToList(); if (contextMigrationMethods.Count() > 0) { return((MigrationsProvider)contextMigrationMethods[0].Invoke(null, new object[] { dBMigratorProps.dbContext, dBMigratorProps, migrationScriptExecutor })); } throw new InvalidOperationException($"The extension method '{extensionMethod}' for type {typeof(DbContext)} was not found"); }
public PostgresMigrations(DBMigratorProps dbMigratorProps, MigrationScriptExecutor migrationScriptExecutor) : base(dbMigratorProps, migrationScriptExecutor) { }
public static MigrationsProvider PostgreSQLDBMigrations(this DbContext dbContext, DBMigratorProps dbMigratorProps, MigrationScriptExecutor migrationScriptExecutor) { return(new PostgresMigrations(dbMigratorProps, migrationScriptExecutor)); }
public static MigrationsProvider MySqlDBMigrations(this DbContext dbContext, DBMigratorProps dbMigratorProps, MigrationScriptExecutor migrationScriptExecutor) { return(new MySQLMigrations(dbMigratorProps, migrationScriptExecutor)); }
public MySQLMigrations(DBMigratorProps dbMigratorProps, MigrationScriptExecutor migrationScriptExecutor) : base(dbMigratorProps, migrationScriptExecutor) { }