2015-07-22 19 views
8

Zaczynam od sequelize i śledziłem ich video tutorial online. Po uruchomieniu , która utworzyła pliki migracyjne do utworzenia użytkownika i utworzenia zadania. Potem musiałem dodać skojarzenia do każdego modelu następująco:Jak utworzyć sequelize migracji cli db po zmianach modelu

// user.js 
classMethods: { 
    associate: function(models) { 
    User.hasMany(models.Task); 
    } 
} 

// task.js 
classMethods: { 
    associate: function(models) { 
    Task.belongsTo(models.User); 
    } 
} 

Jednak pliki migracji do tworzenia tabel dla użytkownika i zadania są już utworzone. Czy muszę ręcznie aktualizować je, aby dodać relacje? Komenda "migration: create" tworzy plik szkieletu migracji. Czy ręcznie wypełniam pliki szkieletu, czy istnieje sposób automatycznego tworzenia pełnego pliku migracji poza tworzeniem modelu?

P.S widziałem następujące pytanie stackoverflow: How to auto generate migrations with Sequelize CLI from Sequelize models?

Odpowiedz

2

Można utworzyć oddzielny migrację z pustego pliku migracji. Zrobiłem to, gdy potrzebowałem dodać kilka dodatkowych kolumn do tabeli.

sequelize migration:create --name users 

Następnie w moim nowym pliku migracji.

module.exports = { 
    up: function (queryInterface, Sequelize) { 
    queryInterface.addColumn(
     'Users', 
     'url', 
     Sequelize.STRING 
    ); 
    }, 

    down: function (queryInterface, Sequelize) { 
    queryInterface.removeColumn(
     'Users', 
     'url', 
     Sequelize.STRING 
    ); 
    } 
}; 

Następnie wystarczy przeprowadzić migrację.

sequelize db:migrate 
Powiązane problemy