Как задать 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'. Спасибо!
  • Вопрос задан
  • 1709 просмотров
Решения вопроса 1
MegaBatz
@MegaBatz Автор вопроса
есть решение, может кому пригодится...

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".
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы