2009-08-04 11 views
0

ich eine Remote-Verbindung lokal einrichten und müssen es zu Heroku schieben. Als ich es nach heroku schob, bekam ich eine Fehlermeldung:gibt es eine Möglichkeit, herokus YML-Datei zu bearbeiten

RemoteDBName ist nicht konfiguriert.

Ich nehme nur an (auch gesucht und gesehen) heroku verwendet ihre eigene config.yml-Datei.

Antwort

0

Figured dies aus, für jemanden zu einer entfernten Datenbank auf Heroku verbinden, die das sehen könnte:

Heroku ersetzt Ihre database.yml Datei mit ihrem eigenen, etwas in Ihnen überschrieben werden.

Um dies zu umgehen:

  • einen neuen Dateiordner in der Config erstellen, es Name
  • Richten Sie die Verbindungszeichenfolge in dieser Datei whatever.yml.
  • Erstellen Sie eine neue Datei in Ihrem Initialisierungsordner, ich rief meine load_remote.rb. In dieser Datei diese Zeile Code schreiben:

    REMOTE_DB = YAML.load_file ("# {} RAILS_ROOT /config/YOURNEWFILEHERE.yml")

  • Richten Sie Ihre Verbindung in einem der Fern Modelle mit dieser Linie der Code:

    establish_connection Remote_DB

0

Lassen Sie mich Ihnen zeigen, [ ‚Was auch immer Sie Ihre Verbindungszeichenfolge in der Datei yml hier genannt‘], wie Datenbank-Konfiguration durchgeführt wird, wenn Sie mit Heroku arbeiten. Ich denke, das könnte in der Dokumentation etwas vage sein, manche Leute sind darüber verwirrt. Lets nutzen die Konsole:

zero:~/Projects/crantastic $ heroku console 
Ruby console for crantastic.heroku.com 
>> puts File.read(Rails.configuration.database_configuration_file) 
--- 
production: 
    encoding: unicode 
    adapter: postgresql 
    username: something_random 
    port: 5432 
    host: somewhere.at.heroku 
    database: something_random 
    password: something_random 

=> nil 
>> 

Heroku in der Praxis ersetzt Ihre Anwendungen database.yml, wenn Sie Ihre Website auf ihren Servern schieben. Ihre Daten werden auf einem ihrer ausgefallenen PostgreSQL-Server gespeichert, unabhängig davon, was Sie lokal verwenden - das bedeutet, dass Sie gar nicht über database.yml nachdenken müssen (außer natürlich für Entwicklungszwecke). Taps stellt sicher, dass alles db agnostisch ist. Wenn Sie Ihre neueste Entwicklungsdatenbank zu Heroku übertragen möchten, führen Sie einfach heroku db: push

Verwandte Themen