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);
 }
Exemplo n.º 2
0
        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)
 {
 }