class ReeMigrator::ApplyMigrations
def call(connection, migrations_yml_path, schema_migrations_path, data_migrations_path)
def call(connection, migrations_yml_path, schema_migrations_path, data_migrations_path) logger.info("Parsing migrations.yml from #{migrations_yml_path}") migrations = YAML.load(File.read(migrations_yml_path)) return [] if is_blank(migrations) applied_schema_migrations = indexed_migrations(connection, SCHEMA) applied_data_migrations = indexed_migrations(connection, DATA) schema_migrations = Dir.glob(File.join(schema_migrations_path, RUBY_EXT)) data_migrations = Dir.glob(File.join(data_migrations_path, RUBY_EXT)) migrations = migrations.map do |migration| if !migration.is_a?(Hash) || !(migration.keys - [SCHEMA, DATA]).empty? raise InvalidMigrationYmlErr.new( "Invalid migrations.yml. Example of valid format:\n- schema: SCHEMA_MIGRATION_FILE_NAME.rb\n- data: DATA_MIGRATION_FILE_NAME.rb" ) end migration_path = if migration.has_key?(SCHEMA) run_migration( connection, :schema, migration[SCHEMA], applied_schema_migrations, schema_migrations, schema_migrations_path ) elsif migration.has_key?(DATA) run_migration( connection, :data, migration[DATA], applied_data_migrations, data_migrations, data_migrations_path ) end migration_path end.compact migrations end