Files
competition-website/database/migrations/013-create-competition-times.js
WorkBuddy a303cf2d53 chore: 后端首次基线提交
运行必须源码:app/(controller/model/service/middleware/lib/utils/validate/router)、config/、database/(migrations/seeders/sql)、启动脚本、app/public/templates 模板。
已忽略运行非必须:node_modules/、logs/、run/、app/public 运行时上传数据、.env*、构建/缓存产物。
2026-08-17 12:25:42 +08:00

58 lines
1.4 KiB
JavaScript

'use strict';
module.exports = {
up: async (queryInterface, Sequelize) => {
await queryInterface.createTable('competition_times', {
id: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true,
allowNull: false,
comment: '配置ID',
},
group_name: {
type: Sequelize.STRING(64),
allowNull: false,
unique: true,
comment: '组别名称(唯一)',
},
start_time: {
type: Sequelize.DATE,
allowNull: true,
comment: '比赛开始时间',
},
end_time: {
type: Sequelize.DATE,
allowNull: true,
comment: '比赛结束时间',
},
deadline: {
type: Sequelize.DATE,
allowNull: true,
comment: '报名/提交截止时间',
},
word_template: {
type: Sequelize.STRING(512),
allowNull: true,
comment: 'Word模板文件路径',
},
created_at: {
type: Sequelize.DATE,
allowNull: false,
defaultValue: Sequelize.literal('CURRENT_TIMESTAMP'),
comment: '创建时间',
},
updated_at: {
type: Sequelize.DATE,
allowNull: false,
defaultValue: Sequelize.literal('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'),
comment: '更新时间',
},
});
},
down: async (queryInterface, Sequelize) => {
await queryInterface.dropTable('competition_times');
},
};