Как обновить настраиваемое поле временной метки sequelize? - PullRequest
0 голосов
/ 07 мая 2020

Поле отметки времени в модели sequelize определяется следующим образом (примечание: оно должно называться last_scraped):

last_scraped: {
      type: Sequelize.DATE, 
      defaultValue: Sequelize.NOW, 
},

MySQL запрос выглядит так:

INSERT INTO `businesses` (`site`,`name`,`business_type`,`address`,`price`,`url`,`last_scraped`) VALUES (?,?,?,?,?,?,?) ON DUPLICATE KEY UPDATE `name`=VALUES(`name`), `price`=VALUES(`price`), `url`=VALUES(`url`), `site`=VALUES(`site`), `address`=VALUES(`address`);

При первой вставке заполняется поле last_scraped, но проблема в том, что оно не меняется при обновлении.

Как это исправить? Есть ли способ сделать это без использования createdAt и updatedAt?

1 Ответ

1 голос
/ 08 мая 2020

Попробуйте это

last_scraped: {
      type: Sequelize.DATE, 
      defaultValue: Sequelize.literal('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'),
},
...