2015-07-22 2 views
8

Я начинаю с sequelize и слежу за их video tutorial онлайн. После запускаКак создать миграцию Sequelize cli db после изменений в модели

node_modules/.bin/sequelize model:create --name User --attributes username:string 

node_modules/.bin/sequelize model:create --name Task --attributes title:string 

, который создал файлы миграции для создания пользователя и создания задачи. Тогда я должен был добавить ассоциации к каждой модели следующим образом:

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

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

Однако файлы миграция для создания таблиц для пользователя и задач уже созданы. Нужно ли вручную обновлять их, чтобы добавить отношения? Команда «migration: create» создает файл скелета миграции. Я вручную заполняю файлы скелета или есть способ автоматически создать полный файл миграции помимо создания модели?

P.S я видел следующий StackOverflow вопрос: How to auto generate migrations with Sequelize CLI from Sequelize models?

ответ

2

Вы можете создать отдельную миграцию из пустой миграции файла. Я сделал это, когда мне нужно было добавить несколько дополнительных столбцов в таблицу.

sequelize migration:create --name users 

Затем в моем новом файле миграции.

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

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

Затем просто выполните миграцию.

sequelize db:migrate 
Смежные вопросы