1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
|
# File 'lib/active_record/connection_adapters/ibm_db_pstmt.rb', line 1931
def assume_migrated_upto_version(version)
version = version.to_i
sm_table = quote_table_name(ActiveRecord::Migrator.schema_migrations_table_name)
migrated = select_values("SELECT version FROM #{sm_table}").map(&:to_i)
versions = Dir['db/migrate/[0-9]*_*.rb'].map do |filename|
filename.split('/').last.split('_').first.to_i
end
unless migrated.include?(version)
pstmt = prepare("INSERT INTO #{sm_table} (version) VALUES (?)")
execute_prepared_stmt(pstmt, [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
pstmt = prepare("INSERT INTO #{sm_table} (version) VALUES (?)")
execute_prepared_stmt(pstmt, [v])
inserted << v
end
end
end
|