2016-02-03 22 views
0

我是Rails的初學者,我很好奇我是否從一開始就把數據庫設置爲Postgres更好,或者我可以直接使用SQLite並在稍後忘記它。如果在開始時設置更好,我是否應該簡單地按照http://guides.rubyonrails.org/configuring.html#configuring-a-database中的3.12或者還有更多事情要做?看起來我需要做更多,但它不是很清楚。例如,除適配器,它的說明書上說改變其他,有更多的代碼中使用SQLite內置的,我不知道我是否需要做任何事情來他們還有:構建應用程序後,我可以輕鬆安全地將Rails數據庫從SQlite重置爲Postgres嗎?

default: &default 
    adapter: postgresql 
    pool: 5 
    timeout: 5000 

development: 
    <<: *default 
    database: db/development.sqlite3 

test: 
    <<: *default 
    database: db/test.sqlite3 

production: 
    <<: *default 
    database: db/production.sqlite3 

回答

2

如果您打算使用Postgres,而不是設置應用程序以使用該應用程序。

雖然可以將數據從SQLite遷移到Postgres,反之亦然,但最好不必處理可能發生的潛在問題。

一般而言,您希望在要部署的同一數據庫系統上開發和測試,因爲它們在解釋SQL標準方面具有不同的功能和不同的差異。你不想通過推送到生產服務器找到他們,然後得到一個非常憤怒的電話。

在部署到Postgres的時候,這肯定會在* rse中咬你,因爲它是相當嚴格的(它是一件好事)。

一個體面的配置是:

default: &default 
    adapter: postgresql 
    pool: 5 
    timeout: 5000 

development: 
    <<: *default 
    database: my_app_dev 

test: 
    <<: *default 
    database: my_app_test 

production: 
    <<: *default 
    database: my_app_production 

注意,在Heroku和其他平臺作爲一種服務(PaaS)服務,您可以簡單地離開了production部分,因爲它會在後覆蓋提交鉤子。

參見:

0

您可以安裝使用PostgreSQL的寶石之一:

在終端gem install pg

在你的Gemfile gem 'pg'

然後你只需要進入的config/database.yml中,並設置一些與此類似:

development: 
    adapter: postgresql 
    encoding: unicode 
    database: myapp_development 
    pool: 5 

test: 
    adapter: postgresql 
    encoding: unicode 
    database: myapp_test 
    pool: 5 

從那裏,只需運行遷移,你應該設置好了!

相關問題