Size: a a a

Sequelize - community (eng/ru)

2019 November 13

YZ

Yaroslav Zhymkov in Sequelize - community (eng/ru)
Andrei
Всем привет
Я хочу чтобы при юзании Model.destroy вызывались инстанс хуки. Я знаю что можно добавить в options individualHooks: true, но я не хочу это делать при каждом коле destroy. Я нагуглил что можно при инициализации сиквалайза можно добавить
hooks: {
       afterBulkDestroy(options) {
           options.individualHooks = true;
       },
   },

но у меня это не сработало. Т.е. в этот метод заходит, individualHooks меняется на true, но хук afterDestroy не вызывается.
Кто-нибудь сталкивался с подобным, может есть какие-то другие варианты? Пробовал на версиях 5.8.6 и 5.21.2
здесь еще 2 способа других: https://sequelize.org/master/manual/hooks.html
источник

A

Andrei in Sequelize - community (eng/ru)
@Version81 Мне кажется мы друг друга не поняли, когда вызываешь ModelTag.destroy(), то хук ModelTag.afterDestroy не будет вызван, но будет вызван ModelTag.afterBulkDestroy.
Если вызвать ModelTag.destroy({individualHooks: true}), то хук ModelTag.afterDestroy вызовется, и вроде как проблема решена, но я не хочу каждый раз когда вызываю SomeModel.destroy писать individualHooks: true, попросту говоря я хочу чтобы он стоял по дефолту.
источник

A

Andrei in Sequelize - community (eng/ru)
пока что решил так, но решение мягко говоря такое себе
источник

A

Andrei in Sequelize - community (eng/ru)
const { destroy } = Model;
Sequelize.Model.destroy = function (options) {
   options.individualHooks = true;
   return destroy.apply(this, arguments);
};
источник

YZ

Yaroslav Zhymkov in Sequelize - community (eng/ru)
Andrei
@Version81 Мне кажется мы друг друга не поняли, когда вызываешь ModelTag.destroy(), то хук ModelTag.afterDestroy не будет вызван, но будет вызван ModelTag.afterBulkDestroy.
Если вызвать ModelTag.destroy({individualHooks: true}), то хук ModelTag.afterDestroy вызовется, и вроде как проблема решена, но я не хочу каждый раз когда вызываю SomeModel.destroy писать individualHooks: true, попросту говоря я хочу чтобы он стоял по дефолту.
да, не так понял. тут не подскажу, не делал
источник

LA

Luis Azcuaga in Sequelize - community (eng/ru)
Ooh but that's telling you that the foreign key you are trying to link this new menu belongs to a restaurant that doesn't exist.
источник

LA

Luis Azcuaga in Sequelize - community (eng/ru)
I don't understand any russian but I see this beforeCreate hook, that should be usefull
источник

LA

Luis Azcuaga in Sequelize - community (eng/ru)
"before creating a new menu -> create a new restaurant with ID res.body.restaurantID"
источник

LA

Luis Azcuaga in Sequelize - community (eng/ru)
источник

LA

Luis Azcuaga in Sequelize - community (eng/ru)
Or before modifying any code, try creating a menu which restaurantID does exist on the table restaurant :)
источник

BD

Binyam Dele in Sequelize - community (eng/ru)
Luis Azcuaga
Or before modifying any code, try creating a menu which restaurantID does exist on the table restaurant :)
I used to create Restaurant first by "Sequelize db:migrate" in terminal but when  i try to insert and update data into it it says "tabel_name doesn't exist" ...
источник

LA

Luis Azcuaga in Sequelize - community (eng/ru)
источник

LA

Luis Azcuaga in Sequelize - community (eng/ru)
Did you try to insert data through any db manager?
источник

LA

Luis Azcuaga in Sequelize - community (eng/ru)
such as dbeaber
источник

LA

Luis Azcuaga in Sequelize - community (eng/ru)
If you are on mac i'd recomend sequel pro
источник

LA

Luis Azcuaga in Sequelize - community (eng/ru)
I'm assuming you are using MySQL
источник

BD

Binyam Dele in Sequelize - community (eng/ru)
Luis Azcuaga
I'm assuming you are using MySQL
Am using PostgresQL
источник

LA

Luis Azcuaga in Sequelize - community (eng/ru)
Oh ok, then dbeaber should do :P
источник

LA

Luis Azcuaga in Sequelize - community (eng/ru)
Or did you try checking your tables through your db viewer/manager (whatever you are using)?
источник

BD

Binyam Dele in Sequelize - community (eng/ru)
Luis Azcuaga
Or did you try checking your tables through your db viewer/manager (whatever you are using)?
Am using pgadmin 4
источник