class DataMigrate::DataMigrator
Public Class Methods
create_data_schema_table()
click to toggle source
# File lib/data_migrate/data_migrator.rb, line 18 def create_data_schema_table DataMigrate::RailsHelper.data_schema_migration.create_table end
current_version()
click to toggle source
# File lib/data_migrate/data_migrator.rb, line 22 def current_version DataMigrate::MigrationContext.new(migrations_paths).current_version end
full_migrations_path()
click to toggle source
Provides the full migrations_path filepath @return (String)
# File lib/data_migrate/data_migrator.rb, line 41 def full_migrations_path File.join(Rails.root, *migrations_paths.split(File::SEPARATOR)) end
match(filename)
click to toggle source
Compares the given filename with what we expect data migration filenames to be, eg the “20091231235959_some_name.rb” pattern @param (String) filename @return (MatchData)
# File lib/data_migrate/data_migrator.rb, line 31 def match(filename) /(\d{14})_(.+)\.rb$/.match(filename) end
migrations(_migrations_paths)
click to toggle source
TODO: this was added to be backward compatible, need to re-evaluate
# File lib/data_migrate/data_migrator.rb, line 50 def migrations(_migrations_paths) #DataMigrate::MigrationContext.new(migrations_paths).migrations DataMigrate::MigrationContext.new(_migrations_paths).migrations end
migrations_paths()
click to toggle source
# File lib/data_migrate/data_migrator.rb, line 14 def migrations_paths Array.wrap(DataMigrate.config.data_migrations_path) end
migrations_status()
click to toggle source
# File lib/data_migrate/data_migrator.rb, line 45 def migrations_status DataMigrate::MigrationContext.new(migrations_paths).migrations_status end
needs_migration?()
click to toggle source
# File lib/data_migrate/data_migrator.rb, line 35 def needs_migration? DataMigrate::DatabaseTasks.pending_migrations.count.positive? end
rollback(migrations_path, steps)
click to toggle source
# File lib/data_migrate/data_migrator.rb, line 64 def rollback(migrations_path, steps) DataMigrate::MigrationContext.new(migrations_path).rollback(steps) end
run(direction, migration_paths, version)
click to toggle source
TODO: this was added to be backward compatible, need to re-evaluate
# File lib/data_migrate/data_migrator.rb, line 56 def run(direction, migration_paths, version) # Ensure all Active Record model cache is reset for each data migration # As recommended in: https://github.com/rails/rails/blob/da21c2e9812e5eb0698fba4a9aa38632fc004432/activerecord/lib/active_record/migration.rb#L467-L470 ActiveRecord::Base.descendants.each(&:reset_column_information) DataMigrate::MigrationContext.new(migration_paths).run(direction, version) end
Public Instance Methods
load_migrated()
click to toggle source
# File lib/data_migrate/data_migrator.rb, line 8 def load_migrated @migrated_versions = DataMigrate::RailsHelper.data_schema_migration.normalized_versions.map(&:to_i).sort end
Private Instance Methods
record_version_state_after_migrating(version)
click to toggle source
# File lib/data_migrate/data_migrator.rb, line 71 def record_version_state_after_migrating(version) if down? migrated.delete(version) DataMigrate::RailsHelper.data_schema_delete_version(version.to_s) else migrated << version DataMigrate::RailsHelper.data_schema_migration.create_version(version.to_s) end end