[英]bookshelf.js timestamps not working
我現在正在試驗 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()
似乎沒有任何效果。
我在這里做錯了什么?
哈,我終於明白了!
您必須告訴模型使用這樣的時間戳:
var User = bookshelf.Model.extend( {
tableName: "users",
hasTimestamps: true
} );
打字稿中的例子
import bookshelf from '../config/bookshelf';
class User extends bookshelf.Model<User> {
get tableName(): string {
return 'users';
}
get hasTimestamps(): boolean {
return true;
}
}
export default User;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.