Sha256: 279e4fadb884b0c4194884659c471ef9f4aa29546db7afeeef74309379481b12
Contents?: true
Size: 1.17 KB
Versions: 2
Compression:
Stored size: 1.17 KB
Contents
class RunMigrationsMarker < ActiveRecord::Migration class << self def up begin migration_numbers.each do |migration_number| break if migration_number > old_migration_number mark_already_run_migration(migration_number) if migration_number > 0 end drop_table old_schema_info_table_name rescue ActiveRecord::ActiveRecordError => ex say "Ignoring the exception: #{ ex }" end end def down # nothing to do end private def old_schema_info_table_name ActiveRecord::Base.table_name_prefix + "schema_info" + ActiveRecord::Base.table_name_suffix end def old_migration_number @old_migration_number ||= ActiveRecord::Base.connection.select_one("SELECT version FROM #{old_schema_info_table_name}")['version'].to_i rescue 0 end def migration_numbers Dir["#{RAILS_ROOT}/db/migrate/[0-9]*_*.rb"].collect { |file| file[/(\d+)_[^\/]+\.rb$/][$1].to_i }.sort end def mark_already_run_migration(migration_number) ActiveRecord::Base.connection.execute("INSERT INTO #{ActiveRecord::Migrator.schema_info_table_name} VALUES(#{migration_number}, NOW())") end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
enhanced_migrations-1.2.1 | migrations/000_run_migrations_marker.rb |
enhanced_migrations-1.2.0 | migrations/000_run_migrations_marker.rb |