2012-04-03 104 views
18

在database.yml中,您可以定義所有設置。我如何從ruby訪問這些設置?我查看了App::Application::config,但在那裏找不到它。另外,我記得人們可以在沒有yaml的情況下配置數據庫設置,有誰知道如何?如何檢查ActiveRecord使用的數據庫名稱

回答

25
Rails.configuration.database_configuration 

這將爲您提供一個哈希表,其中包含您的每個環境的配置。例如。讓你的開發數據庫名稱:

Rails.configuration.database_configuration["development"]["database"] 
+13

若想獲得最新的數據庫配置:'Rails.configuration.database_configuration [Rails.env]' – 2014-06-07 18:54:27

+0

當我嘗試輸入你的命令,我得到這個錯誤: 「Rails.configuration.database_configuration [開發] [數據庫]:命令未找到」 - 任何想法爲什麼? – VoA 2015-12-08 21:33:41

+0

如果有人在你的代碼庫的任何地方添加了以下內容,database_configuration將不會給你正在使用的數據庫:'ActiveRecord :: Base.connection.execute(「USE bleh」)' 這將會:'ActiveRecord :: Base。 connection.current_database' – Gerry 2017-10-22 03:20:33

1

捎帶從tsherif的評論,你可以運行軌道控制檯(導軌C)內Rails.configuration命令來獲取數據庫名稱。

+0

然後要真正運行重置,請使用heroku pg:重置DATABASE_URL,然後按照提示進行操作。 – tommyb67 2016-08-16 01:04:21

21

在Rails 4.2,你可以這樣做:

ActiveRecord::Base.connection.current_database 
+0

這也是一個更好的答案,因爲一個簡單的'ActiveRecord :: Base.connection.execute(「USE bleh」)'會使數據庫配置讀取毫無意義。 – Gerry 2017-10-22 03:22:05

相關問題