2016-07-30 20 views
0

Ich habe eine Node-Express-Anwendung mit postgresql und node.js erstellt. Ich beschloss, es auf Heroku zu setzen. Ich habe meine postgresql-Datenbank mit dem Add-on von Heroku erstellt. Ich kann meine Datenbank sehen (Benutzername/Passwort/Uri usw.)Kann keine Postgresql-Tabellen auf Heroku mit Node.js erstellen

Ich kann die Heroku App pingen, aber wenn ich versuche, einen Benutzer zu erstellen, erhalte ich einen 400 Fehler. Ich habe die Protokolle überprüft und das Problem ist, dass ich die Tabellen nicht erstellen kann.

Hier ist meine app.js, die die Modelle mit ORM erstellen sollte.

var db = require('sequelize-connect'); 
// Database sequelize 
var connectionString; 
var username; 
var password; 
var database; 
if (process.env.NODE_ENV === 'development'){ 
    connectionString = global.localConnectionString; 
    database = global.nameDatabase_development; 
    username = global.usernameDatabase_development; 
    password = global.passwordDatabase_development; 
}else{ 
    connectionString = global.productionConnectionString; 
    database = global.nameDatabase_production; 
    username = global.usernameDatabase_production; 
    password = global.passwordDatabase_production; 
} 

var sequelize = new Sequelize(connectionString); 

// Model ORM configurations 
var discover = path.join(__dirname, 'models'); 
var matcher = function (file) { 
    return true; 
} 
var orm = new db(
    database, 
    username, 
    password, 
    { 
     dialect: 'postgres', 
     port: 5432, 
     force: true 
    }, 
    discover, 
    matcher 
); 

Ich habe den Datenbanknamen/Benutzername/Passwort von meiner Heroku-Seite. Muss ich die Tabellen manuell auf Heroku erstellen? Ich dachte, Sequelize-Connect wurde dafür verwendet? Wie erstelle ich Tabellen auf Heroku?

Antwort

0

Ich denke, Sie sollten DB-Migration von selbst behandeln, weil es nichts damit zu tun hat, was ORM Sie verwenden. ORM ist nur ein Werkzeug für Sie, um SQL-Daten einfacher zu manipulieren und Ihren Code lesbar zu machen.

Normalerweise wird ein ORM einige Skripts für die Migration von DB bereitstellen. In Sequelize können Sie überprüfen, cli Repo, die ich es oft benutze.

auch, müssen Sie Migrationsskript während des Prozesses der deploy hinzuzufügen Heroku Sie here überprüfen können

Somit würde der Schritt

  1. Bereitstellung Ihrer App Heroku
  2. Heroku sein beginnt mit der Installation Ihrer npm-Abhängigkeit
  3. heroku beginnt mit der Ausführung von Migrationsskripten db:migrate in sequelize-cli (DIES IST WAS SIE MISS)
  4. nach der Migration Ihrer Heroku App nachladen