2012-12-06 32 views
3

由於我部署在Heroku上,並且希望匹配產品,我最近在開發中切換到了rails應用程序的postgres。當我將數據庫名稱設置爲'postgres'時,Postgres被安裝並正常工作,這是我理解的默認名稱。database.yml文件配置和postgres - rake db:drop db:create db:migrate

但是,我想更改開發,測試和生產的數據庫名稱。如果我只是改變在database.yml中的名稱,並嘗試運行rake任務,我得到以下錯誤在我的終端:

NOTICE: database "something_development" does not exist, skipping 
Couldn't drop something_test : #<PG::Error: could not connect to server: No such file or directory 
Is the server running locally and accepting 
connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?> 
rake aborted! 
FATAL: database "something_development" does not exist 

這裏是我的database.yml文件,目前的樣子:

development: 
    adapter: postgresql 
    host: localhost 
    database: something_development 

    username: name 


test: 
    adapter: postgresql 
    database: something_test 
    pool: 5 
    timeout: 5000 

production: 
    adapter: postgresql 
    host: localhost 
    username: name 
    database: something_production 

是否還有其他一些步驟我失蹤?道歉,如果我失去了一些明顯的東西!謝謝!

回答

3

更改database.yml文件中的名稱僅更改它查找數據庫的位置,但實際上並未重命名數據庫本身。如果更改指定的位置,則需要使用GUI工具(如navicatpgadmin)或command line重命名數據庫以匹配。

此外,它可能是一個混淆遺漏,但您的發佈輸出同時參考shredset_developmentsomething_development。如果這種情況繼續失敗,也許請確認你的所有名字在任何地方都是一樣的......

+1

謝謝 - 這確實有用。使用命令行,我輸入psql進入postgres,然後ALTER DATABASE將名稱RENAME改爲newname,然後執行\ g。還解決了我的問題中的迷惑錯誤。 – pvskisteak5

+0

對,歡迎您! –