【问题标题】:Not store updatedAt with sequelize model不使用 sequelize 模型存储 updatedAt
【发布时间】:2017-07-21 23:41:10
【问题描述】:

当我将模型存储在我的 MySQL 数据库中时,它们是不可变的。结果,我可以看到表中需要 createdAt 列,但我不需要多余的 updatedAt 列。我可以将 sequelize 配置为不存储 updatedAt 时间,然后我可以从表中删除该列吗?

【问题讨论】:

  • 这不只是简单地删除列并删除您为该列设置数据的情况吗?
  • 不,似乎当我将timestamps: true 设置为模型时,sequelize 会自动创建并尝试使用这些列。
  • 哦,抱歉没有意识到您找到了答案。很高兴事情解决了:)

标签: mysql sequelize.js


【解决方案1】:

http://docs.sequelizejs.com/manual/tutorial/models-definition.html#configuration 找到我自己的答案,我应该在我的模型定义中使用updatedAt: false

【讨论】:

    【解决方案2】:

    查看有关您的情况的文档

    如果您希望 sequelize 处理时间戳,但只需要其中一些,或者希望您的时间戳被称为其他名称,您可以单独覆盖每一列:

    const Foo = sequelize.define('foo',  { /* bla */ }, {
      // don't forget to enable timestamps!
      timestamps: true,
    
      // I don't want createdAt
      createdAt: false,
    
      // I want updatedAt to actually be called updateTimestamp
      updatedAt: 'updateTimestamp',
    
      // And deletedAt to be called destroyTime (remember to enable paranoid for this to work)
      deletedAt: 'destroyTime',
      paranoid: true
    })
    

    所以在上面的例子中,只需将timestamps 设置为true,然后将createdAt 设置为false

    【讨论】:

      猜你喜欢
      • 2019-03-19
      • 1970-01-01
      • 2013-12-24
      • 2018-10-08
      • 2018-01-12
      • 1970-01-01
      • 1970-01-01
      • 2015-07-19
      • 1970-01-01
      相关资源
      最近更新 更多