2016-09-03 10 views
0

多対多リレーションシップを持つモデルファイル内のテーブル間の関係を更新しようとしています。私は現在、関係が一意でなければならないというデフォルトの性質に使用しようとしているコマンドでエラーが発生しています。その結果、belongsToManyにプロパティを追加する簡単な調整をunique: falseとしたいが、移行ファイルで使用する正しい形式がわからない。 classMethodを変更するためのqueryInterfaceコマンドに関するドキュメントはないようです。マイグレーションファイルが必要なのでしょうか?私はこの変更したいCLIの移行の移行クラスメソッドの変更

:これはあなたの問題であれば、これに

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'}) 
     }, 

答えて

1

は知らないが、sequelize-CLIのmodel:createは、モデルの定義に古い方法を生成します。 classMethodsは、sequelize 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; 
};