我现在正在尝试使用bookshelf.js,并使用以下knex迁移创建了一个示例表:
exports.up = function(knex, Promise) {
return knex.schema.createTable( "users", function( table ) {
table.increments();
table.timestamps();
table.string( "email" );
} );
};
然后我定义了一个bookshelf.js模型:
var User = bookshelf.Model.extend( {
tableName: "users"
} );
并试图保存它:
var u = new User( { email: "john.doe@example.com" } );
u.save();
一切似乎都有效,当我查看数据库时,新用户确实已保存,但时间戳列为NULL
。在致电u.timestamp()
之前致电u.save()
并不会产生任何影响。
我在这里做错了什么?
答案 0 :(得分:21)
你必须告诉模型使用这样的时间戳:
var User = bookshelf.Model.extend( {
tableName: "users",
hasTimestamps: true
} );
答案 1 :(得分:0)
打字稿示例
import bookshelf from '../config/bookshelf';
class User extends bookshelf.Model<User> {
get tableName(): string {
return 'users';
}
get hasTimestamps(): boolean {
return true;
}
}
export default User;