Check that target tables exist before proceeding.
git-svn-id: http://svn.redmine.org/redmine/trunk@12865 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
8e00c6ebb9
commit
fa31229a23
|
@ -60,9 +60,18 @@ WARNING: All data in the development database is deleted.
|
||||||
DESC
|
DESC
|
||||||
|
|
||||||
task :migrate_dbms => :environment do
|
task :migrate_dbms => :environment do
|
||||||
ActiveRecord::Base.establish_connection :production
|
ActiveRecord::Base.establish_connection :development
|
||||||
|
target_tables = ActiveRecord::Base.connection.tables
|
||||||
|
ActiveRecord::Base.remove_connection
|
||||||
|
|
||||||
(ActiveRecord::Base.connection.tables - %w(schema_migrations plugin_schema_info)).each do |table_name|
|
ActiveRecord::Base.establish_connection :production
|
||||||
|
tables = ActiveRecord::Base.connection.tables.sort - %w(schema_migrations plugin_schema_info)
|
||||||
|
|
||||||
|
if (tables - target_tables).any?
|
||||||
|
abort "The following table(s) are missing from the target database: #{(tables - target_tables).join(', ')}"
|
||||||
|
end
|
||||||
|
|
||||||
|
tables.each do |table_name|
|
||||||
Source = Class.new(ActiveRecord::Base)
|
Source = Class.new(ActiveRecord::Base)
|
||||||
Target = Class.new(ActiveRecord::Base)
|
Target = Class.new(ActiveRecord::Base)
|
||||||
Target.establish_connection(:development)
|
Target.establish_connection(:development)
|
||||||
|
|
Loading…
Reference in New Issue