AdonisJS 没有时间戳的默认值

AdonisJS no default values for timestamps

我已经创建了带有时间戳的基本模式,但是当我在播种机中插入 table 时,列 created_at 和 updated_at 为空,但基于 Knex.js文档我认为如果没有指定它应该是当前日期时间。

最新的 adonis 库,数据库:mysql 5.7.

我的架构

'use strict'

const Schema = use('Schema')

class UserSchema extends Schema {
  up () {
    this.create('users', (table) => {
      table.increments()
      table.string('name')
      table.timestamps()
    })
  }

  down () {
    this.drop('users')
  }
}

module.exports = UserSchema

我的播种机

'use strict'

const Factory = use('Factory')
const Database = use('Database')

class UserSeeder {
  async run () {
    await Database.table('users').insert({
      name: 'JP',
    })
  }
}

module.exports = UserSeeder

我发现时间戳仅在使用模型时是默认的,但在直接使用数据库时不是。这个现在包含在文档中。如果它是数据库级别的默认设置,那就太好了。

时间戳仅适用于 LUCID ORM。您正在使用直接数据库。 在字段中设置您的 json,它将起作用:

await Database.table('users').insert({
   name: 'JP',
   created_at,: Database.fn.now(),
   updated_at : Database.fn.now()
})

您应该添加时间戳参数,例如 useTimestampType 和 makeDefaultNow:

table.timestamps(true, true)