Sha256: 2de3c91c7cad5c9662a66449a73d1cdd853da889854c64d4d4be6c8ed743365f
Contents?: true
Size: 1.57 KB
Versions: 1
Compression:
Stored size: 1.57 KB
Contents
# frozen_string_literal: true module DataMigrate # Helper class to getting access to db schema # to allow data/schema combiation tasks class SchemaMigration def self.pending_schema_migrations all_migrations = DataMigrate::MigrationContext.new(migrations_paths).migrations sort_migrations( ActiveRecord::Migrator.new(:up, all_migrations, ActiveRecord::Base.connection.schema_migration). pending_migrations. map {|m| { version: m.version, kind: :schema }} ) end def self.run(direction, migration_paths, version) ActiveRecord::MigrationContext.new(migration_paths, ActiveRecord::Base.connection.schema_migration).run(direction, version) end def self.sort_migrations(set1, set2 = nil) migrations = set1 + (set2 || []) migrations.sort {|a, b| sort_string(a) <=> sort_string(b)} end def self.migrations_paths spec_name = DataMigrate.config.spec_name if spec_name && Gem::Dependency.new("rails", "~> 7.0").match?("rails", Gem.loaded_specs["rails"].version) ActiveRecord::Base.configurations.configs_for(env_name: Rails.env, name: spec_name).migrations_paths elsif spec_name && Gem::Dependency.new("rails", "~> 6.0").match?("rails", Gem.loaded_specs["rails"].version) ActiveRecord::Base.configurations.configs_for(env_name: Rails.env, spec_name: spec_name).migrations_paths else Rails.application.config.paths["db/migrate"].to_a end end def self.sort_string(migration) "#{migration[:version]}_#{migration[:kind] == :data ? 1 : 0}" end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
data_migrate-10.0.0.rc1 | lib/data_migrate/schema_migration.rb |