2012-04-03 9 views
18

In database.yml si definiscono tutte le impostazioni. Come posso accedere a quelle impostazioni da Ruby? Ho cercato in App::Application::config, ma non riesco a trovarlo lì. Inoltre, ricordo che le persone erano in grado di configurare le impostazioni del database senza yaml, qualcuno sa come?come controllare il nome del database che ActiveRecord utilizza

risposta

25
Rails.configuration.database_configuration 

questo vi darà una tabella hash con le configurazioni per ciascuno dei vostri ambienti. Per esempio. per ottenere il vostro sviluppo nome del database:

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

Per ottenere la configurazione del database corrente: 'Rails.configuration.database_configuration [Rails.env]' –

+0

Quando provo il vostro comando di input ottengo questo errore: "Rails.configuration.database_configuration [sviluppo] [database]: comando non trovato" - qualche idea del perché? – VoA

+0

Se qualcuno aggiunge ciò che segue nel codice, database_configuration non fornirà il database utilizzato: 'ActiveRecord :: Base.connection.execute (" USE bleh ")' Ciò comporterà: 'ActiveRecord :: Base. connection.current_database' – Gerry

1

di spalle sui commenti da tsherif, è possibile eseguire i comandi di Rails.configuration all'interno della console binari (rotaie c) per ottenere i nomi dei database.

+0

Quindi per eseguire effettivamente il reset si utilizza heroku pg: reset DATABASE_URL, quindi seguire il prompt. – tommyb67

21

In Rails 4.2, si può fare questo:

ActiveRecord::Base.connection.current_database 
+0

Questa è anche una risposta migliore come un semplice 'ActiveRecord :: Base.connection.execute (" USE bleh ")' renderebbe inutile la lettura dal database config. – Gerry

Problemi correlati