21

Sequelize で Node Express を使用しており、データベースの「日付」列の defaultValue を今日の日付に設定したいと考えています。次の移行を試しましたが、移行を実行したときと同じ日付にデフォルトの日付が設定されたため、機能しませんでした。行が作成された日付と同じ日付に設定したい。

module.exports = {
  up: function (queryInterface, Sequelize) {
    return queryInterface.addColumn(
      'Todos',
      'date',
      {
        type: Sequelize.DATEONLY,
        allowNull: false,
        defaultValue: new Date()
      }
    )
  },

それがどのように機能するのか理解できません。

4

7 に答える 7

25

デフォルト値として MySQL 関数を使用する必要がありますNOW()

したがって、列の宣言は次のようになります。

{ 
   type: Sequelize.DATEONLY,
   allowNull: false,
   defaultValue: Sequelize.NOW
}

これは移行のフィールドに入力されないことに注意してください。これらは、sequelize で作成されていないため、空になります。

于 2016-11-19T15:53:47.367 に答える