diff options
author | Yves Senn <yves.senn@gmail.com> | 2013-10-21 10:49:49 -0700 |
---|---|---|
committer | Yves Senn <yves.senn@gmail.com> | 2013-10-21 10:49:49 -0700 |
commit | 5a254c20581cccbab30b816e1efc604dce190179 (patch) | |
tree | b9c8228f4b04103867aaff0db5b73e2bd82120ee | |
parent | 1bf87c1ee2e01be272ffe81b3908ea51f559ecb2 (diff) | |
parent | a733e00b10e5f17a7fc70e55e9b1949a5e1128be (diff) | |
download | rails-5a254c20581cccbab30b816e1efc604dce190179.tar.gz rails-5a254c20581cccbab30b816e1efc604dce190179.tar.bz2 rails-5a254c20581cccbab30b816e1efc604dce190179.zip |
Merge pull request #12567 from GoBoundless/fix_postgres_structure_import
Fix loading a sql structure file on postgres when the file's path has whitespace in it
-rw-r--r-- | activerecord/CHANGELOG.md | 5 | ||||
-rw-r--r-- | activerecord/lib/active_record/tasks/postgresql_database_tasks.rb | 2 | ||||
-rw-r--r-- | activerecord/test/cases/tasks/postgresql_rake_test.rb | 7 |
3 files changed, 13 insertions, 1 deletions
diff --git a/activerecord/CHANGELOG.md b/activerecord/CHANGELOG.md index 76b89fa0d1..97a42ca95b 100644 --- a/activerecord/CHANGELOG.md +++ b/activerecord/CHANGELOG.md @@ -1,3 +1,8 @@ +* Fix a bug where rake db:structure:load crashed when the path contained + spaces. + + *Kevin Mook* + * `ActiveRecord::QueryMethods#unscope` unscopes negative equality Allows you to call `#unscope` on a relation with negative equality diff --git a/activerecord/lib/active_record/tasks/postgresql_database_tasks.rb b/activerecord/lib/active_record/tasks/postgresql_database_tasks.rb index 4413330fab..3d02ee07d0 100644 --- a/activerecord/lib/active_record/tasks/postgresql_database_tasks.rb +++ b/activerecord/lib/active_record/tasks/postgresql_database_tasks.rb @@ -59,7 +59,7 @@ module ActiveRecord def structure_load(filename) set_psql_env - Kernel.system("psql -q -f #{filename} #{configuration['database']}") + Kernel.system("psql -q -f #{Shellwords.escape(filename)} #{configuration['database']}") end private diff --git a/activerecord/test/cases/tasks/postgresql_rake_test.rb b/activerecord/test/cases/tasks/postgresql_rake_test.rb index f31896bc7f..90dac6399d 100644 --- a/activerecord/test/cases/tasks/postgresql_rake_test.rb +++ b/activerecord/test/cases/tasks/postgresql_rake_test.rb @@ -231,6 +231,13 @@ module ActiveRecord ActiveRecord::Tasks::DatabaseTasks.structure_load(@configuration, filename) end + + def test_structure_load_accepts_path_with_spaces + filename = "awesome file.sql" + Kernel.expects(:system).with("psql -q -f awesome\\ file.sql my-app-db") + + ActiveRecord::Tasks::DatabaseTasks.structure_load(@configuration, filename) + end end end |