class RailsDataMigrations::Migrator
Constants
- MIGRATOR_SALT
Public Class Methods
current_version()
click to toggle source
# File lib/rails_data_migrations/migrator.rb, line 29 def current_version get_all_versions.max || 0 end
get_all_versions(connection = ActiveRecord::Base.connection)
click to toggle source
# File lib/rails_data_migrations/migrator.rb, line 21 def get_all_versions(connection = ActiveRecord::Base.connection) if migrations_table_exists?(connection) LogEntry.all.map { |x| x.version.to_i }.sort else [] end end
list_migrations()
click to toggle source
# File lib/rails_data_migrations/migrator.rb, line 49 def list_migrations if rails_6_0? ::ActiveRecord::MigrationContext.new(migrations_path, ::ActiveRecord::SchemaMigration).migrations elsif rails_5_2? ::ActiveRecord::MigrationContext.new(migrations_path).migrations else migrations(migrations_path) end end
list_pending_migrations()
click to toggle source
# File lib/rails_data_migrations/migrator.rb, line 59 def list_pending_migrations if rails_5_2? already_migrated = get_all_versions list_migrations.reject { |m| already_migrated.include?(m.version) } else open(migrations_path).pending_migrations end end
migrations_path()
click to toggle source
# File lib/rails_data_migrations/migrator.rb, line 37 def migrations_path 'db/data_migrations' end
migrations_table_exists?(connection = ActiveRecord::Base.connection)
click to toggle source
# File lib/rails_data_migrations/migrator.rb, line 16 def migrations_table_exists?(connection = ActiveRecord::Base.connection) table_check_method = connection.respond_to?(:data_source_exists?) ? :data_source_exists? : :table_exists? connection.send(table_check_method, schema_migrations_table_name) end
rails_5_2?()
click to toggle source
# File lib/rails_data_migrations/migrator.rb, line 45 def rails_5_2? Rails::VERSION::MAJOR > 5 || (Rails::VERSION::MAJOR == 5 && Rails::VERSION::MINOR >= 2) end
rails_6_0?()
click to toggle source
# File lib/rails_data_migrations/migrator.rb, line 41 def rails_6_0? Rails::VERSION::MAJOR >= 6 end
run_migration(direction, migrations_path, version)
click to toggle source
# File lib/rails_data_migrations/migrator.rb, line 68 def run_migration(direction, migrations_path, version) if rails_6_0? new(direction, list_migrations, ::ActiveRecord::SchemaMigration, version).run elsif rails_5_2? new(direction, list_migrations, version).run else run(direction, migrations_path, version) end end
schema_migrations_table_name()
click to toggle source
# File lib/rails_data_migrations/migrator.rb, line 33 def schema_migrations_table_name LogEntry.table_name end
Public Instance Methods
record_version_state_after_migrating(version)
click to toggle source
# File lib/rails_data_migrations/migrator.rb, line 5 def record_version_state_after_migrating(version) if down? migrated.delete(version) LogEntry.where(version: version.to_s).delete_all else migrated << version LogEntry.create!(version: version.to_s) end end