Permalink
Browse files

Fixed the Rakefile's interaction with postgresql use PGPASSWORD and P…

…GHOST in the environment to fix prompting for passwords when connecting to a remote db and local socket connections. Also added a '-x' flag to pg_dump which stops it dumping privileges #807 [rasputnik]

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@931 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
  • Loading branch information...
1 parent 1b40f05 commit f22b000546301b0f87c5074b21552b77b7b2f98a @dhh dhh committed Mar 20, 2005
Showing with 14 additions and 6 deletions.
  1. +2 −0 railties/CHANGELOG
  2. +12 −6 railties/fresh_rakefile
View
@@ -1,5 +1,7 @@
*SVN*
+* Fixed the Rakefile's interaction with postgresql use PGPASSWORD and PGHOST in the environment to fix prompting for passwords when connecting to a remote db and local socket connections. Also added a '-x' flag to pg_dump which stops it dumping privileges #807 [rasputnik]
+
* Fixed the Rakefile's interaction with postgresql to quote the user name and use template0 when dumping so the functions doesn't get dumped too #855 [pburleson]
View
@@ -119,8 +119,10 @@ task :clone_structure_to_test => [ :db_structure_dump, :purge_test_database ] do
IO.readlines("db/#{RAILS_ENV}_structure.sql").join.split("\n\n").each do |table|
ActiveRecord::Base.connection.execute(table)
end
- when "postgresql"
- `psql -U "#{abcs["test"]["username"]}" -h #{abcs["test"]["host"]} -f db/#{RAILS_ENV}_structure.sql #{abcs["test"]["database"]}`
+ when "postgresql"
+ ENV['PGHOST'] = abcs["test"]["host"] if abcs["test"]["host"]
+ ENV['PGPASSWORD'] = abcs["test"]["password"]
+ `psql -U "#{abcs["test"]["username"]}" -f db/#{RAILS_ENV}_structure.sql #{abcs["test"]["database"]}`
when "sqlite", "sqlite3"
`#{abcs[RAILS_ENV]["adapter"]} #{abcs["test"]["dbfile"]} < db/#{RAILS_ENV}_structure.sql`
else
@@ -135,8 +137,10 @@ task :db_structure_dump => :environment do
when "mysql"
ActiveRecord::Base.establish_connection(abcs[RAILS_ENV])
File.open("db/#{RAILS_ENV}_structure.sql", "w+") { |f| f << ActiveRecord::Base.connection.structure_dump }
- when "postgresql"
- `pg_dump -U "#{abcs[RAILS_ENV]["username"]}" -h #{abcs[RAILS_ENV]["host"]} -s -f db/#{RAILS_ENV}_structure.sql #{abcs[RAILS_ENV]["database"]}`
+ when "postgresql"
+ ENV['PGHOST'] = abcs[RAILS_ENV]["host"] if abcs[RAILS_ENV]["host"]
+ ENV['PGPASSWORD'] = abcs[RAILS_ENV]["password"]
+ `pg_dump -U "#{abcs[RAILS_ENV]["username"]}" -s -x -f db/#{RAILS_ENV}_structure.sql #{abcs[RAILS_ENV]["database"]}`
when "sqlite", "sqlite3"
`#{abcs[RAILS_ENV]["adapter"]} #{abcs[RAILS_ENV]["dbfile"]} .schema > db/#{RAILS_ENV}_structure.sql`
else
@@ -152,8 +156,10 @@ task :purge_test_database => :environment do
ActiveRecord::Base.establish_connection(abcs[RAILS_ENV])
ActiveRecord::Base.connection.recreate_database(abcs["test"]["database"])
when "postgresql"
- `dropdb -U "#{abcs["test"]["username"]}" -h #{abcs["test"]["host"]} #{abcs["test"]["database"]}`
- `createdb -T template0 -U "#{abcs["test"]["username"]}" -h #{abcs["test"]["host"]} #{abcs["test"]["database"]}`
+ ENV['PGHOST'] = abcs["test"]["host"] if abcs["test"]["host"]
+ ENV['PGPASSWORD'] = abcs["test"]["password"]
+ `dropdb -U "#{abcs["test"]["username"]}" #{abcs["test"]["database"]}`
+ `createdb -T template0 -U "#{abcs["test"]["username"]}" #{abcs["test"]["database"]}`
when "sqlite","sqlite3"
File.delete(abcs["test"]["dbfile"]) if File.exist?(abcs["test"]["dbfile"])
else

0 comments on commit f22b000

Please sign in to comment.