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