2013-06-05 80 views
3

所以我最近開始研究一個Rails應用程序,我們決定(不是我,與我一​​起工作的人)應該從Sqlite3切換到Postgresql。我已經在我們的服務器上正確安裝了Postgresql,爲dev,prod和test創建了數據庫,並使用Postgres的代碼更新了我的Gemfile和database.yml文件。我現在不確定的事情是如何使用Postgres數據庫關閉db目錄中的所有文件。我只需刪除我的應用程序中db目錄的內容並運行rake db:create?如何將我的Rails應用程序從Sqlite3切換到postgresql?

+0

請參閱:http://stackoverflow.com/questions/6710654/change-from-sqlite-to-postgresql-in-a-fresh-rails-project – tgrrr

回答

4

您需要編輯config/database.yml才能使用postgresql而不是sqlite。

db/migrate/*.rb的遷移有望跨數據庫兼容,並且不需要更改。

運行rake db:create db:migrate與新的database.yml應該創建PostgreSQL數據庫,你就可以開始運行了。

實際上,您可能會遇到各種問題,但這將是一個起點。

+1

請注意,與SQLite不同,PostgreSQL數據將存在於PostgreSQL中數據庫服務器本身,而不是在您的Rails項目中的文件中。您可能會也可能不會刪除sqlite文件;一旦'database.yml'改爲使用postgres,應該沒有關係。 –

+0

另請注意,PostgreSQL更安全,因此您可能需要在服務器上創建USER和DATABASE並跳過db:create。 如果連接時遇到問題,請嘗試查看/etc/postgresql/9.1/main/pg_hba.conf文件的底部。 'trust'方法就是我正在使用的方法。 – complistic

相關問題