0

Sie sind meine letzte Chance hier. Also habe ich ein Projekt mit generator-sql-fullstack-Paket erstellt und versucht, es in heroku zu implementieren.Verbindung verweigert auf Heroku mit Generator-sql-Fullstack

Leider kann ich keine Verbindung zur Heroku-Datenbank herstellen, da ich Fehler R10 erhalte. Ich habe verschiedene Wege ausprobiert, um mit postgres durch Sequelize zu verbinden - keiner von ihnen hat funktioniert. Die Hauptsache war, es ssl kompatibel zu machen, aber es verbindet sich immer noch nicht (oder vielleicht verwende ich es falsch)

Projekt läuft großartig lokal, App ist auch ohne Fehler gebaut.

Bitte schauen Sie in Heroku Protokolle und Hauptdateien für die Verbindung. Hoffentlich wirst du mir hier helfen können. Vielen Dank.

$ heroku logs 
2016-04-18T21:27:36.994697+00:00 app[web.1]: > node server/app.js 
2016-04-18T21:27:36.994705+00:00 app[web.1]: 
2016-04-18T21:27:37.784886+00:00 app[web.1]: Express server listening on 55648, in production mode 
2016-04-18T21:28:34.891786+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch 
2016-04-18T21:28:34.891786+00:00 heroku[web.1]: Stopping process with SIGKILL 
2016-04-18T21:28:35.750471+00:00 heroku[web.1]: Process exited with status 137 

/server/config/environment/production.js

module.exports = { 
    database: 'DBNAME', 
    username: 'DBUSERNAME', 
    password: 'DBPASSWORD', 
    sql: { 
     host: 'DBHOST', 
     port: process.env.PORT || '5432', 
     dialect: 'postgres', 
     dialectOptions: { 
     ssl: true 
     } 
    } 
}; 

/server/api/index.js

var sequelize = new Sequelize(config.database, config.username, config.password, config.sql); 

Other than that, war nichts auf Server-Seite berührt. Meine Vermutung ist, dass ich Sequelize falsch verwende, aber ich folgte der Dokumentation (um SSL für Heroku anzupassen).

Bitte lassen Sie mich wissen, wenn Sie mehr Konfigurationsdateien sehen möchten.

Vielen Dank für jede Eingabe!

Antwort

0

Dieses:

var sequelize = new Sequelize(process.env.DATABASE_URL); 

sollte für den Anschluss an Heroku des Postgres genug sein. Sie können diese DATABASE_URL in Heroku Dashboard -> YourApp -> Einstellungen -> Konfigurationsvariablen überprüfen. Sie können auch db-Anmeldeinformationen aus dieser Zeichenfolge übernehmen, müssen dies jedoch nicht tun.

process.env.PORT nicht die Datenbank-Port, sondern Port, an dem Sie Ihren Server gestartet werden soll (so Heroku kann seine interne Routing Dinge tun), wie:

server.listen(process.env.PORT || 5432) 

Sie config-Datei sollte so aussehen so etwas wie:

module.exports = { 
port: process.env.PORT || 5432, 
database: { 
    uri: process.env.DATABASE_URL 
} 
}; 

und eine Verbindung zu Datenbank mit:

var sequelize = new Sequelize(config.database.uri); 
+0

Ja, ich habe das versucht .. Same issue e. Gibt es eine Möglichkeit, die Verbindung manuell zu debuggen? Ich bin so frustriert .. –

+0

Fehler R10 (Boot-Timeout) -> Web-Prozess konnte nicht an $ PORT innerhalb von 60 Sekunden nach dem Start zu binden - das ist nicht Sequelize oder Postgres Problem. Aber Sie können eine Verbindung zu Ihrer Datenbank mit jedem PG-DB-Manager oder mit heroku cli: heroku pg: psql --app yourappname DATABASE –