Skip to content

Commit 53f42ef

Browse files
author
root
committed
Rework fix_migration_numbers.rake task
1 parent 884d08a commit 53f42ef

File tree

1 file changed

+22
-4
lines changed

1 file changed

+22
-4
lines changed

Diff for: lib/tasks/fix_migration_numbers.rake

+22-4
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,30 @@ namespace :redmine_git_hosting do
1111
puts "old_name : #{old_name}"
1212
puts "new_name : #{new_name}"
1313

14-
query = "DELETE FROM #{ActiveRecord::Base.connection.quote_string('schema_migrations')} WHERE #{ActiveRecord::Base.connection.quote_string('version')} = '#{ActiveRecord::Base.connection.quote_string(old_name)}';"
15-
ActiveRecord::Base.connection.execute(query)
14+
# Get the old migration name
15+
query = "SELECT * FROM #{ActiveRecord::Base.connection.quote_string('schema_migrations')} WHERE #{ActiveRecord::Base.connection.quote_string('version')} = '#{ActiveRecord::Base.connection.quote_string(old_name)}';"
16+
result = ActiveRecord::Base.connection.execute(query)
1617

17-
query = "INSERT INTO #{ActiveRecord::Base.connection.quote_string('schema_migrations')} (VERSION) VALUES ('#{ActiveRecord::Base.connection.quote_string(new_name)}');"
18-
ActiveRecord::Base.connection.execute(query)
18+
# If present, rename
19+
if !result.to_a.empty?
20+
query = "DELETE FROM #{ActiveRecord::Base.connection.quote_string('schema_migrations')} WHERE #{ActiveRecord::Base.connection.quote_string('version')} = '#{ActiveRecord::Base.connection.quote_string(old_name)}';"
21+
ActiveRecord::Base.connection.execute(query)
1922

23+
query = "INSERT INTO #{ActiveRecord::Base.connection.quote_string('schema_migrations')} (VERSION) VALUES ('#{ActiveRecord::Base.connection.quote_string(new_name)}');"
24+
ActiveRecord::Base.connection.execute(query)
25+
else
26+
# Check the new name is present
27+
query = "SELECT * FROM #{ActiveRecord::Base.connection.quote_string('schema_migrations')} WHERE #{ActiveRecord::Base.connection.quote_string('version')} = '#{ActiveRecord::Base.connection.quote_string(new_name)}';"
28+
result = ActiveRecord::Base.connection.execute(query)
29+
30+
if result.to_a.empty?
31+
puts "Error : migration is missing #{new_name}"
32+
else
33+
puts "Already migrated, pass!"
34+
puts
35+
end
36+
next
37+
end
2038
puts
2139
end
2240

0 commit comments

Comments
 (0)