Как задать Foreign key sequelize/associations?

const User = Sequelize.define('user', {/* attributes */})
const Company =Sequelize.define('company', {/* attributes */});

Company.hasMany(User, {foreignKey: 'some_field'});
User.belongsTo(Company, {foreignKey: 'some_field'});

Суть вопроса: у обоих моделей существует поле 'some_field', но User не желает подхватывать его в качестве внешнего ключа и берет по умолчанию 'id'. Спасибо!
  • Вопрос задан
  • 42 просмотра
Решения вопроса 1
  • есть решение, может кому пригодится...

    export default (sequelize, DataTypes) => {
    return sequelize.define('user', {
    some_field: {
    type: DataTypes.INTEGER,
    required: true,
    references: {
    model: 'company',
    key: 'some_field',
    },
    },
    });
    };

    В этом случае ключ будет задаваться правильно (а не id по умолчанию). НО! проблема остается при выборке: когда "Company" будет джойнить к себе юзеров то в сравнении будет поле " company.id", а не "company.some_field".
    Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы