Sequelize.js 在Sequelize迁移中创建时间戳
我正在为我的ORM使用SequelizeJS 我有一个“视频”模型。此模型使用“视频”表 如何创建包含时间戳的迁移?我需要定义自己的时间戳列,还是有快捷方式 在/migrations/123412341234中创建视频表.jsSequelize.js 在Sequelize迁移中创建时间戳,sequelize.js,Sequelize.js,我正在为我的ORM使用SequelizeJS 我有一个“视频”模型。此模型使用“视频”表 如何创建包含时间戳的迁移?我需要定义自己的时间戳列,还是有快捷方式 在/migrations/123412341234中创建视频表.js 'use strict'; module.exports = { up: function (queryInterface, Sequelize) { queryInterface.createTable( 'Videos', {
'use strict';
module.exports = {
up: function (queryInterface, Sequelize) {
queryInterface.createTable(
'Videos',
{
id: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true
},
title: {
type: Sequelize.STRING,
allowNull: false,
unique: true
},
author: {
type: Sequelize.STRING,
allowNull: false
},
videoUrl: {
type: Sequelize.STRING,
},
coverUrl: {
type: Sequelize.STRING,
}
}
);
},
down: function (queryInterface, Sequelize) {
queryInterface.dropTable('Videos');
}
};
module.exports = function(sequelize, DataTypes) {
return sequelize.define('Video', {
title: {
type: DataTypes.STRING,
allowNull: false,
unique: true
},
author: {
type: DataTypes.STRING,
allowNull: false
},
videoUrl: {
type: DataTypes.STRING,
},
coverUrl: {
type: DataTypes.STRING,
}
});
}
在/models/video.js中
'use strict';
module.exports = {
up: function (queryInterface, Sequelize) {
queryInterface.createTable(
'Videos',
{
id: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true
},
title: {
type: Sequelize.STRING,
allowNull: false,
unique: true
},
author: {
type: Sequelize.STRING,
allowNull: false
},
videoUrl: {
type: Sequelize.STRING,
},
coverUrl: {
type: Sequelize.STRING,
}
}
);
},
down: function (queryInterface, Sequelize) {
queryInterface.dropTable('Videos');
}
};
module.exports = function(sequelize, DataTypes) {
return sequelize.define('Video', {
title: {
type: DataTypes.STRING,
allowNull: false,
unique: true
},
author: {
type: DataTypes.STRING,
allowNull: false
},
videoUrl: {
type: DataTypes.STRING,
},
coverUrl: {
type: DataTypes.STRING,
}
});
}
在/models/index.js中(这是通过运行$sequelize init
创建的默认值)
使用迁移时,不会为您创建主键、updatedAt和createdAt字段。相反,您应该确保在迁移中创建这些列 对于要自动更新的updatedAt和createdAt列,可以在模型中使用挂钩 即:
^从我头上跳下来,没有经过测试 您根本不需要添加钩子,sequelize为您管理该逻辑(如果您没有在模型定义选项中添加
时间戳:false
),这是真的,除非您使用迁移来创建表(在sequelize 2中,之后我不确定).使用4.28.0
对我来说很有用:我有模型定义+表迁移(不使用sequelize.sync()
),它管理时间戳而不使用hooksCool,我不知道他们已经添加了它。