2012-04-03 10 views
18

In database.yml definieren Sie alle Einstellungen. Wie kann ich auf diese Einstellungen von Ruby zugreifen? Ich habe in App::Application::config gesucht, kann es aber dort nicht finden. Ich erinnere mich auch, dass Leute Datenbankeinstellungen ohne Yaml konfigurieren konnten, weiß jemand wie?Wie überprüft man den Datenbanknamen, den ActiveRecord verwendet

Antwort

25
Rails.configuration.database_configuration 

Dadurch erhalten Sie eine Hash-Tabelle mit den Konfigurationen für jede Ihrer Umgebungen. Z.B. zu Ihrer Entwicklungsdatenbanknamen zu erhalten:

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

Um die aktuelle Datenbankkonfiguration zu erhalten: 'Rails.configuration.database_configuration [Rails.env]' –

+0

Wenn ich geben Sie Ihren Befehl versuchen, bekomme ich diesen Fehler: "Rails.configuration.database_configuration [development] [Datenbank]: Befehl nicht gefunden" - irgendeine Idee warum? – VoA

+0

Wenn jemand in Ihrer Codebasis Folgendes hinzufügt, gibt Datenbank_Verbindung Ihnen nicht die verwendete Datenbank: 'ActiveRecord :: Base.connection.execute (" USE bleh ")' Dies wird: 'ActiveRecord :: Base. connection.current_database' – Gerry

1

Um auf die Kommentare von tsherif huckepack, können Sie die Rails.configuration Befehle innerhalb der Schienen Konsole (Schienen c) ausführen, um die Datenbank-Namen zu erhalten.

+0

Um dann den Reset tatsächlich auszuführen, verwenden Sie heroku pg: reset DATABASE_URL, dann folgen Sie der Eingabeaufforderung. – tommyb67

21

In Rails 4.2, können Sie dies tun:

ActiveRecord::Base.connection.current_database 
+0

Dies ist auch eine bessere Antwort, da ein einfaches 'ActiveRecord :: Base.connection.execute (" USE bleh ")' das Lesen von der Datenbankkonfiguration sinnlos machen würde. – Gerry

Verwandte Themen