2017-09-22 1 views
2

Ich habe Sequelize und Sequelize CLI gerade angefangen mitwie Hinzufügen, Löschen neue Spalten in Sequelize CLI

Da es sich um eine Entwicklungszeit ist, gibt es eine häufige Hinzufügen und Löschen von Spalten. Was ist die beste Methode, um einem vorhandenen Modell eine neue Spalte hinzuzufügen?

Zum Beispiel möchte ich auf eine neue Spalte ‚abgeschlossen‘ zu Todo Modell. Ich werde diese Spalte zu models/todo.js hinzufügen. Was ist der nächste Schritt?

Ich versuchte sequelize db:migrate

nicht funktioniert: „Keine Migration ausgeführt wurden, Datenbankschema war bereits auf dem neuesten Stand.“

Antwort

7

Wenn Sie sequelize-cli verwenden, müssen Sie zuerst die Migration erstellen. Dies ist nur eine Datei, die der Engine mitteilt, wie die Datenbank aktualisiert wird und wie die Änderungen rückgängig gemacht werden, falls etwas schief geht. Sie sollten immer diese Datei in Ihrem Repository commit

$ sequelize migration:create 

Die Migrationsdatei würde wie folgt aussehen:

module.exports = { 
    up: function(queryInterface, Sequelize) { 
    // logic for transforming into the new state 
    queryInterface.addColumn(
     'Todo', 
     'completed', 
    Sequelize.BOOLEAN 
    ); 

    }, 

    down: function(queryInterface, Sequelize) { 
    // logic for reverting the changes 
    queryInterface.removeColumn(
     'Todo', 
     'completed' 
    ); 
    } 
} 

Und dann führen Sie es:

$ sequelize db:migrate 
+0

Gibt es eine Dokumentation für das? –

+1

Ja. http://sequelize.readthedocs.io/en/latest/docs/migrations/ –

+0

Danke. Was ist, wenn ich mehrere Spalten hinzufügen möchte? –

Verwandte Themen