AdonisJS没有时间戳的默认值

时间:2018-07-29 17:26:47

标签: adonis.js

我已经创建了带有时间戳记的基本架构,但是当我将其插入种子机中的表中时,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

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

我发现时间戳仅在使用模型时才是默认值,而在直接使用数据库时则不是默认值。现在,文档中将介绍这一内容。如果它是数据库级别的默认值,那就太好了。

答案 2 :(得分:1)

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

table.timestamps(true, true)