我是Ruby和web開發的新手。我使用Windows 7 64位和Ruby 2.0,並安裝了PostgreSQL 9.4。createdb:太多命令行參數
我想使用ActiveRecord來創建數據庫。我檢查了我的postgresql服務器正在運行,並且我進行了捆綁安裝,以確保我擁有所有必需的gem。當我運行「捆綁高管耙分貝:創建,」它看起來像耙子能夠找到PostgreSQL的createdb.exe,但由於某種原因,它告訴我,我有太多的命令行參數:
C:\Users\MH\Desktop\activerecord-template> bundle exec rake db:create
Creating activerecord-template development and test databases if they don't exist...
'createdb': too many command line-arguments (first is "postgres")
我的Gemfile,Rake文件,並config.rb文件都在這裏我之前一篇:createdb not recognized as a command when using ActiveRecord
我認爲這個問題可能是在這裏的Rakefile:
desc "Create #{APP_NAME} databases"
task "create" do
puts "Creating #{APP_NAME} development and test databases if they don't exist..."
system("createdb #{DB_NAME} --username #{DB_USERNAME} -w --no-password && createdb #{TEST_DB_NAME} --username #{DB_USERNAME} -w --no-password")
end
我試圖刪除和更改的順序 - w在此引用爲:pg_dump: too many command line arguments ,但這並沒有解決問題。
也有關於「您的選擇少參數之前你的選擇」把一些討論,並在這些鏈接錯誤的順序進行選擇:
http://grokbase.com/t/postgresql/pgsql-general/07avnzajn7/createdb-argument-question
http://postgresql.nabble.com/pgpass-does-not-work-for-createlang-td2118667.html
但我不真的瞭解我的代碼意味着什麼。
我剛纔也想過,你應該確保你的變量名都包含一些值,而且都不是空的。你可以在'system'調用之前設置一個var和output:'cmd =「createdb#{DB_NAME} --username#{DB_USERNAME} -w --no-password」;放cmd' – lilole
我懷疑我需要打破系統()線,但是當我嘗試輸入您的建議更改時,它顯示了終端中等號的語法錯誤。它說等號是「意想不到的」。我認爲Windows可以採用&&,但我不知道「太多」參數意味着什麼。有沒有辦法找出最大的參數createdb可以採取? – user4992261
語法錯誤,這是一個驚喜。什麼是完整的錯誤文本?你是什麼意思「在終端」?你說的對,Windows 7 cmd.exe似乎對'&&'很滿意,所以這會提示一些「錯誤」的'createdb'被調用。 – lilole