From fa31229a2338706455dd754fd57e7f7e8ebf26a7 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Sun, 9 Feb 2014 10:49:57 +0000 Subject: [PATCH] Check that target tables exist before proceeding. git-svn-id: http://svn.redmine.org/redmine/trunk@12865 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- lib/tasks/redmine.rake | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/tasks/redmine.rake b/lib/tasks/redmine.rake index cd11796e3..c8d35afb2 100644 --- a/lib/tasks/redmine.rake +++ b/lib/tasks/redmine.rake @@ -60,9 +60,18 @@ WARNING: All data in the development database is deleted. DESC 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) Target = Class.new(ActiveRecord::Base) Target.establish_connection(:development)