Sekwencja: zmiana schematu modelu podczas produkcji

Używamy ormasequelize.js i zdefiniowali model jako taki:

module.exports = function(sequelize, DataTypes) {
    var Source = sequelize.define('Source', {
        name: {
            type: DataTypes.STRING, 
            allowNull: false, 
            unique: true
        }
    }, {
        paranoid: true
    });

    return Source;
};

Jest to wdrażane do produkcji i synchronizowane z bazą danych za pomocąsequelize.sync. Następnym krokiem jest dodanie parametru:

module.exports = function(sequelize, DataTypes) {
    var Source = sequelize.define('Source', {
        name: {
            type: DataTypes.STRING, 
            allowNull: false, 
            unique: true
        }, 
            location: {
                    type: DataTypes.STRING
            }
    }, {
        paranoid: true
    });

    return Source;
};

Jednak podczas wdrażania do produkcjisequelize.sync nie dodaje tego nowego parametru. To dlatego, żesync robi:

CREATE TABLE IF NOT EXISTS

I faktycznie nie aktualizuje schematu, jeśli tabela istnieje. To jestodnotowane w ich dokumentacji.

Jedyną opcją wydaje się być{ force: true }, nie jest to jednak w porządku dla produkcyjnej bazy danych.

Czy ktoś wie, jak prawidłowo zaktualizować schemat, gdy konieczne są zmiany?

questionAnswers(1)

yourAnswerToTheQuestion