diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2012-09-05 14:48:19 -0700 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2012-09-05 14:48:19 -0700 |
commit | fdcbc560ab155f82898e8894db4e566b78abfa37 (patch) | |
tree | 7d1cb1c66b5e6c342cc460ec82f9703f19d1aa72 /activerecord/lib | |
parent | 1c8539da4738d51795422903b84f79705bc854cc (diff) | |
parent | ece23b5fa01301ec006aa42f8b59ec938c35427b (diff) | |
download | rails-fdcbc560ab155f82898e8894db4e566b78abfa37.tar.gz rails-fdcbc560ab155f82898e8894db4e566b78abfa37.tar.bz2 rails-fdcbc560ab155f82898e8894db4e566b78abfa37.zip |
Merge pull request #7525 from seamusabshere/use-mysql-binary-for-rake-db-structure-load
Use the 'mysql' binary for 'rake db:structure:load'
Diffstat (limited to 'activerecord/lib')
-rw-r--r-- | activerecord/lib/active_record/tasks/mysql_database_tasks.rb | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/activerecord/lib/active_record/tasks/mysql_database_tasks.rb b/activerecord/lib/active_record/tasks/mysql_database_tasks.rb index bf62dfd5b5..85d08402f9 100644 --- a/activerecord/lib/active_record/tasks/mysql_database_tasks.rb +++ b/activerecord/lib/active_record/tasks/mysql_database_tasks.rb @@ -54,11 +54,15 @@ module ActiveRecord end def structure_load(filename) - establish_connection(configuration) - connection.execute('SET foreign_key_checks = 0') - IO.read(filename).split("\n\n").each do |table| - connection.execute(table) + args = ['mysql'] + args.concat(['--user', configuration['username']]) if configuration['username'] + args << "--password=#{configuration['password']}" if configuration['password'] + args.concat(['--default-character-set', configuration['charset']]) if configuration['charset'] + configuration.slice('host', 'port', 'socket', 'database').each do |k, v| + args.concat([ "--#{k}", v ]) if v end + args.concat(['--execute', %{SET FOREIGN_KEY_CHECKS = 0; SOURCE #{filename}; SET FOREIGN_KEY_CHECKS = 1}]) + Kernel.system(*args) end private |