aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/tasks/mysql_database_tasks.rb
diff options
context:
space:
mode:
authorKir Shatrov <shatrov@me.com>2016-12-22 15:00:23 -0500
committerKir Shatrov <shatrov@me.com>2016-12-22 16:18:59 -0500
commitb8f74860b61782e3b949ade3bb51bff40899e89b (patch)
treec6ab56bc820223984acf20b19fcf5273745ac733 /activerecord/lib/active_record/tasks/mysql_database_tasks.rb
parent7336d0a269dbee21f4d38c2f48e47302e81095aa (diff)
downloadrails-b8f74860b61782e3b949ade3bb51bff40899e89b.tar.gz
rails-b8f74860b61782e3b949ade3bb51bff40899e89b.tar.bz2
rails-b8f74860b61782e3b949ade3bb51bff40899e89b.zip
Make ActiveRecord structure load/dump configurable
Without this patch it's impossible to pass extra flags to mysqldump/pg_dump when running `rake db:structure:dump` or `load` The following config variables (`structure_load_flags` and `structure_dump_flags`) make it better configurable.
Diffstat (limited to 'activerecord/lib/active_record/tasks/mysql_database_tasks.rb')
-rw-r--r--activerecord/lib/active_record/tasks/mysql_database_tasks.rb6
1 files changed, 4 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/tasks/mysql_database_tasks.rb b/activerecord/lib/active_record/tasks/mysql_database_tasks.rb
index 5cdb3d53f6..920830b9cf 100644
--- a/activerecord/lib/active_record/tasks/mysql_database_tasks.rb
+++ b/activerecord/lib/active_record/tasks/mysql_database_tasks.rb
@@ -53,21 +53,23 @@ module ActiveRecord
connection.collation
end
- def structure_dump(filename)
+ def structure_dump(filename, extra_flags)
args = prepare_command_options
args.concat(["--result-file", "#{filename}"])
args.concat(["--no-data"])
args.concat(["--routines"])
args.concat(["--skip-comments"])
+ args.concat(Array(extra_flags)) if extra_flags
args.concat(["#{configuration['database']}"])
run_cmd("mysqldump", args, "dumping")
end
- def structure_load(filename)
+ def structure_load(filename, extra_flags)
args = prepare_command_options
args.concat(["--execute", %{SET FOREIGN_KEY_CHECKS = 0; SOURCE #{filename}; SET FOREIGN_KEY_CHECKS = 1}])
args.concat(["--database", "#{configuration['database']}"])
+ args.concat(Array(extra_flags)) if extra_flags
run_cmd("mysql", args, "loading")
end