Использование sequelize, я ожидаю эту строку:Sequelize belongsToMany не создает новую таблицу
m.User.belongsToMany(m.Company, {through: 'UserCompany'});
для создания новой таблицы в моей базе данных под названием «user_company», что бы связать «пользователя» таблицы и «компании» таблицы вместе. Однако это не так. Могу ли я недоразумение документации, когда он говорит
Это создаст новую модель под названием UserProject с с эквивалентными внешними ключами ProjectID и USERID. Являются ли атрибуты камешками или нет, зависит от двух моделей, соединенных таблицей (в в этом случае «Пользователь и проект»).
или я что-то не так?
Вот отношения Я настраиваю
m.Company.hasMany(m.User);
m.User.belongsToMany(m.Company, {
through: m.UserCompany
});
m.User.sync({force: true, match: /_test$/});
m.Company.sync({force: true, match: /_test$/});
m.UserCompany.sync({force: true, match: /_test$/});
Это определенно не обязательно. Вы не забыли называть 'sequelize.sync' после создания ассоциаций? –
Я звоню на каждую из моделей. Это то, что вы имели ввиду? Или вам нужно вызвать синхронизацию объекта sequelize? Возможно, в этом и проблема. Я отредактировал оригинальный вопрос, чтобы показать, как я устанавливаю отношения. – trentjones21
Похоже, что вызов синхронизации на объект sequelize сделал трюк, как вы и предполагали. Благодаря! Еще один вопрос: если мне нужно добавить столбцы в таблицу UserCompany (например, столбец зарплаты, чтобы показать, сколько компания платит пользователю), мне нужно вручную создать мою собственную модель? – trentjones21