Sequelize.js 在Sequelize迁移中创建时间戳

Sequelize.js 在Sequelize迁移中创建时间戳,sequelize.js,Sequelize.js,我正在为我的ORM使用SequelizeJS 我有一个“视频”模型。此模型使用“视频”表 如何创建包含时间戳的迁移?我需要定义自己的时间戳列,还是有快捷方式 在/migrations/123412341234中创建视频表.js 'use strict'; module.exports = { up: function (queryInterface, Sequelize) { queryInterface.createTable( 'Videos', {

我正在为我的ORM使用SequelizeJS

我有一个“视频”模型。此模型使用“视频”表

如何创建包含时间戳的迁移?我需要定义自己的时间戳列,还是有快捷方式

/migrations/123412341234中创建视频表.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/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,我不知道他们已经添加了它。