2012-03-09 76 views
1

看來用於顯示數據的數據庫與我在rails控制檯中可以使用的數據庫不同。在rails中切換數據庫階段

我試圖運行rails dbconsole,我也得到:

Couldn't find database client: sqlite3. Check your $PATH and try again. 

我的測試和開發數據庫適配器是SQLITE3和我的生產適配器是MYSQL。

我需要我的導軌控制檯連接到我的生產數據庫。

+0

「舞臺」是錯誤的單詞;你正在尋找切換「環境」。你的環境可能不應該使用不同的數據庫引擎,你應該在'config/database.yml'中修復它。目前尚不清楚您的開發中是否安裝了實用的SQlite3數據庫,或者是否有填充的生產中的功能性MySQL數據庫。你能澄清嗎? – meagar 2012-03-09 02:45:29

+0

感謝您向我澄清。 這兩個數據庫都被填充。我猜測,我在rails控制檯中連接的數據庫是開發,這是我能想到的唯一解釋。我可以通過下面給出的答案連接到生產。 – marimaf 2012-03-09 03:17:53

回答

2

如果你想連接到你的生產數據庫,則需要執行consoledbconsole命令之前的RAILS_ENV環境變量設置爲production

的「Rails的控制檯」和dbconsole命令參考不同的東西:

如果您想直接連接到數據庫,執行SQL語句,使用

$ RAILS_ENV=production ./script/rails dbconsole 

如果你試圖加載「Rails控制檯」,即可訪問Rails環境的交互式Ruby外殼,運行

$ RAILS_ENV=production ./script/rails console 
+0

謝謝!我能夠使用生產數據庫! 我應該運行一個類似的命令來將數據種到生產數據庫,因爲運行rake db:seed會加載到不同的數據庫中。謝謝。 – marimaf 2012-03-09 03:14:10

+1

是的。 *總是通過'RAILS_ENV'環境變量指定環境。如果您想生產生產數據庫,您必須運行'RAILS_ENV =生產耙db:種子'。 – meagar 2012-03-09 03:36:21