在 Sequelize 迁移中将 defaultValue 设置为今天的日期

新手上路,请多包涵

我正在使用带有 Sequelize 的 Node Express,我想将数据库中“日期”列的默认值设置为今天的日期。我尝试了以下迁移,但没有成功,因为它将默认日期设置为与我运行迁移时相同的日期。我希望将其设置为与创建行时相同的日期。

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

我不明白那将如何工作。

原文由 Andreas 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 553
1 个回答

您需要将 MySQL 函数 NOW() 用作默认值。

所以你的列声明应该是这样的:

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

请记住,这不会填充迁移中的字段。它们将是空的,因为它们不是用 sequelize 创建的。

原文由 drinchev 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题