Size: a a a

Sequelize - community (eng/ru)

2020 January 22

GS

Grigorii K. Shartsev in Sequelize - community (eng/ru)
Что-то он ещё лишних ключей насоздавал, теперь даже данные из сида вставить не могу ._.
источник

KG

Kool Guy in Sequelize - community (eng/ru)
понятно
источник

KG

Kool Guy in Sequelize - community (eng/ru)
я это через миграции контроллирую
источник

GS

Grigorii K. Shartsev in Sequelize - community (eng/ru)
Kool Guy
я это через миграции контроллирую
У меня пока состояние, когда проще делать sync force.

Я просто вообще не понимаю, нафига он повесил unique на внешний ключ ._.
источник

KG

Kool Guy in Sequelize - community (eng/ru)
да там вообще дичь генерирует порой
источник

GS

Grigorii K. Shartsev in Sequelize - community (eng/ru)
Видимо, не стоит использовать BelongsToMany, когда таблица связывает не М:М, а М:М:М:М...

У меня есть таблица Employment, которая связывает:
Сотрудник + Должность + Департамент (+ Проект).

На каждую BelongsToMany, видимо, он создаёт unique на пару ключей.
источник

GS

Grigorii K. Shartsev in Sequelize - community (eng/ru)
@Version81 Может знаешь, можно ли как-то заставить Sequelize не создавать индекс уникальности в таблице-связке, если таблица-связка связывает не 2, а больше таблиц?

Совсем избавляться не хотелось бы от BelongsToMany, так как это усложняет запросы и структуру ответа.

Собственно задача:
Employment связывает Департамент + Должность + Работник
источник

YZ

Yaroslav Zhymkov in Sequelize - community (eng/ru)
Grigorii K. Shartsev
@Version81 Может знаешь, можно ли как-то заставить Sequelize не создавать индекс уникальности в таблице-связке, если таблица-связка связывает не 2, а больше таблиц?

Совсем избавляться не хотелось бы от BelongsToMany, так как это усложняет запросы и структуру ответа.

Собственно задача:
Employment связывает Департамент + Должность + Работник
Event.belongsToMany(Member, { through: { model: EM, unique: false }});
не получиться ли просто параметр?
источник

GS

Grigorii K. Shartsev in Sequelize - community (eng/ru)
Yaroslav Zhymkov
Event.belongsToMany(Member, { through: { model: EM, unique: false }});
не получиться ли просто параметр?
Хм, Попробую, как закончится seed. В TS чуть другой получается синтаксис
источник

GS

Grigorii K. Shartsev in Sequelize - community (eng/ru)
В доке было написано, что в unique передаётся имя ключа
источник

YZ

Yaroslav Zhymkov in Sequelize - community (eng/ru)
еще можно попробывать модель самому создать и потом прокинуть
источник

GS

Grigorii K. Shartsev in Sequelize - community (eng/ru)
Yaroslav Zhymkov
еще можно попробывать модель самому создать и потом прокинуть
В смысле таблицу связку? Всегда так делаю. Да и в ней много полей, иначе никак
источник

GS

Grigorii K. Shartsev in Sequelize - community (eng/ru)
Yaroslav Zhymkov
Event.belongsToMany(Member, { through: { model: EM, unique: false }});
не получиться ли просто параметр?
Судя по этому issue, эта проблема не решена и такое BalongsToMany просто не поддерживается...

https://github.com/sequelize/sequelize/issues/5077
источник

ii

iCheater iCheater in Sequelize - community (eng/ru)
Оффтоп
Можно у кого подглядеть как организована папка routes?
Сейчас в app.js  
const indexRouter = require('./routes/home');
....
const usersRouter = require('./routes/users');
const itemsRouter = require('./routes/items')

и потом
....
app.use('/users/', usersRouter);
app.use('/items/', itemsRouter);
app.use('/catalog/', catalogRouter);

как у вас дела с подключением роутов?
источник

CM

Chingiz Mamiyev in Sequelize - community (eng/ru)
iCheater iCheater
Оффтоп
Можно у кого подглядеть как организована папка routes?
Сейчас в app.js  
const indexRouter = require('./routes/home');
....
const usersRouter = require('./routes/users');
const itemsRouter = require('./routes/items')

и потом
....
app.use('/users/', usersRouter);
app.use('/items/', itemsRouter);
app.use('/catalog/', catalogRouter);

как у вас дела с подключением роутов?
В routes сделай файл index.js импортируй все и экспортируй.В файле app.js сделай require этого файла и всё
источник

ii

iCheater iCheater in Sequelize - community (eng/ru)
так и сделал в итоге ) спасибо )
источник

YZ

Yaroslav Zhymkov in Sequelize - community (eng/ru)
iCheater iCheater
Оффтоп
Можно у кого подглядеть как организована папка routes?
Сейчас в app.js  
const indexRouter = require('./routes/home');
....
const usersRouter = require('./routes/users');
const itemsRouter = require('./routes/items')

и потом
....
app.use('/users/', usersRouter);
app.use('/items/', itemsRouter);
app.use('/catalog/', catalogRouter);

как у вас дела с подключением роутов?
сделай роут редюсер и в нем все обьявляй
источник

ii

iCheater iCheater in Sequelize - community (eng/ru)
Yaroslav Zhymkov
сделай роут редюсер и в нем все обьявляй
что это ?
источник

GS

Grigorii K. Shartsev in Sequelize - community (eng/ru)
Возвращаясь к моей проблеме.

Просто взять и добавить BelongsToMany через таблицу, которая соединяет 3 таблицы - можно. И всё будет корректно работать в запросах.

Но если вызвать sync, то он создаст лишние ключи на уникальность.

Ну как так? :(
источник

GS

Grigorii K. Shartsev in Sequelize - community (eng/ru)
Grigorii K. Shartsev
@Version81 Может знаешь, можно ли как-то заставить Sequelize не создавать индекс уникальности в таблице-связке, если таблица-связка связывает не 2, а больше таблиц?

Совсем избавляться не хотелось бы от BelongsToMany, так как это усложняет запросы и структуру ответа.

Собственно задача:
Employment связывает Департамент + Должность + Работник
^
источник