method
assume_migrated_upto_version
v3.2.13 -
Show latest stable
- Class:
ActiveRecord::ConnectionAdapters::SchemaStatements
assume_migrated_upto_version(version, migrations_paths = ActiveRecord::Migrator.migrations_paths)public
No documentation available.
# File activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb, line 446
def assume_migrated_upto_version(version, migrations_paths = ActiveRecord::Migrator.migrations_paths)
migrations_paths = Array.wrap(migrations_paths)
version = version.to_i
sm_table = quote_table_name(ActiveRecord::Migrator.schema_migrations_table_name)
migrated = select_values("SELECT version FROM #{sm_table}").map { |v| v.to_i }
paths = migrations_paths.map {|p| "#{p}/[0-9]*_*.rb" }
versions = Dir[*paths].map do |filename|
filename.split('/').last.split('_').first.to_i
end
unless migrated.include?(version)
execute "INSERT INTO #{sm_table} (version) VALUES ('#{version}')"
end
inserted = Set.new
(versions - migrated).each do |v|
if inserted.include?(v)
raise "Duplicate migration #{v}. Please renumber your migrations to resolve the conflict."
elsif v < version
execute "INSERT INTO #{sm_table} (version) VALUES ('#{v}')"
inserted << v
end
end
end