From bed0fa8a88d8d51acb7d6084db76ab1cce7ecccc Mon Sep 17 00:00:00 2001 From: Edouard CHIN Date: Wed, 21 Jun 2017 13:54:14 -0400 Subject: pass `structure_dump_flags` / `structure_load_flags` options before any other: - On Mysql, some command line options that affect option-file handling such as `--no-defaults` have to be passed before any other options - Modified rails to pass them right after the `mysql` command - Ref https://dev.mysql.com/doc/refman/5.7/en/option-file-options.html and https://bugs.mysql.com/bug.php?id=83386 - Ref #27437 --- activerecord/lib/active_record/tasks/mysql_database_tasks.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'activerecord/lib/active_record') diff --git a/activerecord/lib/active_record/tasks/mysql_database_tasks.rb b/activerecord/lib/active_record/tasks/mysql_database_tasks.rb index 541165b3d1..5b1eba6345 100644 --- a/activerecord/lib/active_record/tasks/mysql_database_tasks.rb +++ b/activerecord/lib/active_record/tasks/mysql_database_tasks.rb @@ -59,7 +59,6 @@ module ActiveRecord args.concat(["--no-data"]) args.concat(["--routines"]) args.concat(["--skip-comments"]) - args.concat(Array(extra_flags)) if extra_flags ignore_tables = ActiveRecord::SchemaDumper.ignore_tables if ignore_tables.any? @@ -67,6 +66,7 @@ module ActiveRecord end args.concat(["#{configuration['database']}"]) + args.insert(0, Array(extra_flags)).flatten! if extra_flags run_cmd("mysqldump", args, "dumping") end @@ -75,7 +75,7 @@ module ActiveRecord 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 + args.insert(0, Array(extra_flags)).flatten! if extra_flags run_cmd("mysql", args, "loading") end -- cgit v1.2.3 From 8f1486f2697095749777c7896ab5bf9211a4b8d3 Mon Sep 17 00:00:00 2001 From: Edouard CHIN Date: Wed, 21 Jun 2017 14:08:12 -0400 Subject: PR Review --- activerecord/lib/active_record/tasks/mysql_database_tasks.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'activerecord/lib/active_record') diff --git a/activerecord/lib/active_record/tasks/mysql_database_tasks.rb b/activerecord/lib/active_record/tasks/mysql_database_tasks.rb index 5b1eba6345..c25d87dd3e 100644 --- a/activerecord/lib/active_record/tasks/mysql_database_tasks.rb +++ b/activerecord/lib/active_record/tasks/mysql_database_tasks.rb @@ -66,7 +66,7 @@ module ActiveRecord end args.concat(["#{configuration['database']}"]) - args.insert(0, Array(extra_flags)).flatten! if extra_flags + args.unshift(*extra_flags) if extra_flags run_cmd("mysqldump", args, "dumping") end @@ -75,7 +75,7 @@ module ActiveRecord 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.insert(0, Array(extra_flags)).flatten! if extra_flags + args.unshift(*extra_flags) if extra_flags run_cmd("mysql", args, "loading") end -- cgit v1.2.3