Sequelize CLI Migration classMethod Change

Я пытаюсь обновить отношения между таблицами в моих файлах моделей, которые имеют отношения «многие ко многим». В настоящее время я получаю ошибки с командой, которую я пытаюсь использовать по умолчанию, чтобы отношения были уникальными. В результате я хочу сделать простую настройку, добавив свойство в мой belongsToMany с unique: false, но я не уверен, какой формат использовать в файле миграции. Кажется, нет никакой документации по команде queryInterface для изменения classMethod. Мне вообще нужен файл миграции?

Я хочу изменить это:

classMethods: {
        associate: function(db) {
            User.belongsToMany(db.Organization, { through: 'member', foreignKey: 'user_id'}),
            User.belongsToMany(db.Team, { through: 'member', foreignKey: 'user_id'})
        },

к этому (unique: false)

classMethods: {
        associate: function(db) {
            User.belongsToMany(db.Organization, { through: 'member', unique: false, foreignKey: 'user_id'}),
            User.belongsToMany(db.Team, { through: 'member', unique: false, foreignKey: 'user_id'})
        },

person cphill    schedule 03.09.2016    source источник


Ответы (1)


Не знаю, является ли это вашей проблемой, но model:create sequenceize-cli генерирует определения модели по-старому. classMethods устарел, начиная с продолжения v4. http://docs.sequelizejs.com/manual/tutorial/upgrade-to-v4.html

Старый способ:

module.exports = function(sequelize, DataTypes) {
  var Profile = sequelize.define('profile', {
    bio: DataTypes.TEXT,
    email: DataTypes.STRING
  }, {
    classMethods: {
      associate: function(models) {
        // associations can be defined here
        Profile.belongsTo(models.user);
      }
    }
  });
  return Profile;
};

Новый способ:

module.exports = function(sequelize, DataTypes) {
  var Profile = sequelize.define('profile', {
    bio: DataTypes.TEXT,
    email: DataTypes.STRING
  });

  Profile.associate = function(models) {
    Profile.belongsTo(models.user);
  };

  return Profile;
};
person Eric Ihli    schedule 20.06.2017