diff options
author | Kir Shatrov <shatrov@me.com> | 2016-12-22 15:00:23 -0500 |
---|---|---|
committer | Kir Shatrov <shatrov@me.com> | 2016-12-22 16:18:59 -0500 |
commit | b8f74860b61782e3b949ade3bb51bff40899e89b (patch) | |
tree | c6ab56bc820223984acf20b19fcf5273745ac733 /activerecord/lib/active_record/tasks/mysql_database_tasks.rb | |
parent | 7336d0a269dbee21f4d38c2f48e47302e81095aa (diff) | |
download | rails-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.rb | 6 |
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 |