2017-07-14 2 views
0

ich meine app mit Heroku versucht, zu implementieren, wenn ich versuche, den Server mitRails: Active :: NoDatabaseError FATAL: Datenbank "sale_development" existiert nicht

Schienen Server -b $ IP -p $ PORT zu laufen

Es hält mich einen Fehler geben, der sagt Active :: NoDatabaseError FATAL: Datenbank "sale_development" nicht

existiert

Hier ist meine database.yml

# SQLite version 3.x 
# gem install sqlite3 
# 
# Ensure the SQLite 3 gem is defined in your Gemfile 
# gem 'sqlite3' 
# 
default: &default 
    adapter: postgresql 
    encoding: unicode 
    pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> 

development: 
<<: *default 
    database: sale_development 


test: 
    <<: *default 
    database: sale_test 


production: 
<<: *default 
database: sale_production 
    username: sale 
    password: <%= ENV['SALE_DATABASE_PASSWORD'] %> 

Was ich nicht verstehe, ist, warum es „sale_development“ sagen, existiert nicht Es existieren sollte, weil Verkauf ist der Name, den ich meine app namens

+0

Nachdem Sie den Code zu Heroku geschoben haben, haben Sie 'heroku run rake db: migrate' ausgeführt? Du musst das ausführen. Und Heroku verwendet 'database.yml' nicht aus deinem Code, also spielt es keine Rolle. – Sajan

+0

was meinst du schieben? Wenn ich Heroku run Rake ausführen db: migrieren, es heißt keine App angegeben – bockdavidson

+0

Wie stellen Sie die App bereit? Ich nehme an, dass Sie über Git bereitstellen, indem Sie Ihren Code auf Herokus Remote-URL drücken. Unabhängig von der Bereitstellungsmethode führen Sie den Befehl aus dem Verzeichnis Ihrer App aus, um den Fehler "Keine angegebene Anwendung" zu beheben. – Sajan

Antwort

0

Was passiert, wenn Sie bereitstellen versuchen? Wird die App zum ersten Mal bereitgestellt?

Wenn Sie rails server -b $IP -p $PORT ausführen, binden Sie entweder an die falsche IP, was bedeutet, dass der Befehl lokal ausgeführt wird, wo Sie Ihre dev db nicht erstellt haben. Oder Sie führen den Befehl rails server erfolgreich mit dieser IP aus, aber Sie haben das Flag -e für die Umgebung nicht eingeschlossen, sodass Ihre App standardmäßig mit der Entwicklungsumgebung ausgeführt wird. In diesem Fall fügen Sie Ihrem Befehl das Flag -e production hinzu.

Nebenbei bemerkt, ich bin mir nicht sicher, warum Sie den Befehl rails server an erster Stelle ausführen möchten, da es während des Bereitstellungsprozesses nicht benötigt wird.

Wenn das Problem ist, dass Sie erfolgreich bereitgestellt haben, aber Sie keine db-Ausführung haben: heroku run rake db:create und anschließend heroku run rake db:migrate.

+0

Ja, das ist mein erstes Mal – bockdavidson

+0

Ich probierte die -e Produktionsbefehl, tut nichts – bockdavidson

+0

@bockdavidson was ist 'heroku run rake db: create' und' heroku run rake db: migrate'? Denken Sie daran, 'heroku run rake db: create' nach der ersten Bereitstellung auszuführen und dann zu migrieren, da diese Befehle nicht automatisch ausgeführt werden. Auch hier ist es nicht notwendig, den Rails-Server auf Heroku zu betreiben, solange es keine Probleme mit dem App-Rails-Server gibt, der beim Deployment automatisch gestartet wird. also bin ich nicht sicher, warum Sie versuchen, Rails Server auf Heroku zu starten. Schließe die Logs ab und sieh nach, welche Fehler auftreten. – alex1sz

Verwandte Themen