module Spina::Admin::Conferences::Migration::Renaming
Public Instance Methods
detect_migration(name)
click to toggle source
# File lib/spina/admin/conferences/migration/renaming.rb, line 71 def detect_migration(name) Dir[engine_migration_glob(name)].first end
engine_migration_glob(name)
click to toggle source
# File lib/spina/admin/conferences/migration/renaming.rb, line 67 def engine_migration_glob(name) "#{migrations_path}/**/*_#{name}.spina{_admin,}_conferences_engine.rb" end
migration_hash(name)
click to toggle source
# File lib/spina/admin/conferences/migration/renaming.rb, line 59 def migration_hash(name) { name: name, file: detect_migration(name) } end
migrations_path()
click to toggle source
# File lib/spina/admin/conferences/migration/renaming.rb, line 63 def migrations_path @migrations_path || ActiveRecord::Tasks::DatabaseTasks.migrations_paths.first end
raise_on_duplicate_migrations!()
click to toggle source
# File lib/spina/admin/conferences/migration/renaming.rb, line 27 def raise_on_duplicate_migrations! raise DuplicateMigrationsError, @stale_migrations if @stale_migrations.any? end
rename_migration(name, to:)
click to toggle source
# File lib/spina/admin/conferences/migration/renaming.rb, line 18 def rename_migration(name, to:) config.after_initialize do migration = {} migration[:old] = migration_hash(name) migration[:new] = migration_hash(to) @stale_migrations << migration if [migration[:old], migration[:new]].pluck(:file).all?(&:present?) end end