75 lines
2.2 KiB
JavaScript
75 lines
2.2 KiB
JavaScript
module.exports = {
|
||
async up(manager) {
|
||
console.log(' - 添加特等奖等级...');
|
||
|
||
// SQLite不支持直接修改CHECK约束,需要重建表
|
||
// 1. 创建新表结构(包含特等奖)
|
||
await manager.executeSql(`
|
||
CREATE TABLE Prizes_new (
|
||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||
activityId INTEGER NOT NULL,
|
||
name TEXT NOT NULL,
|
||
level TEXT NOT NULL CHECK(level IN ('特等奖', '一等奖', '二等奖', '三等奖', '参与奖', '伴手礼')),
|
||
description TEXT,
|
||
image TEXT,
|
||
quantity INTEGER DEFAULT 1,
|
||
sortOrder INTEGER DEFAULT 0,
|
||
source TEXT DEFAULT 'purchase',
|
||
sponsor TEXT,
|
||
createdAt DATETIME NOT NULL,
|
||
updatedAt DATETIME NOT NULL
|
||
);
|
||
`);
|
||
|
||
// 2. 复制数据
|
||
await manager.executeSql(`
|
||
INSERT INTO Prizes_new
|
||
SELECT * FROM Prizes;
|
||
`);
|
||
|
||
// 3. 删除旧表
|
||
await manager.executeSql(`DROP TABLE Prizes;`);
|
||
|
||
// 4. 重命名新表
|
||
await manager.executeSql(`ALTER TABLE Prizes_new RENAME TO Prizes;`);
|
||
|
||
console.log(' - 特等奖等级添加完成');
|
||
},
|
||
|
||
async down(manager) {
|
||
console.log(' - 移除特等奖等级...');
|
||
|
||
// 1. 创建旧表结构(不包含特等奖)
|
||
await manager.executeSql(`
|
||
CREATE TABLE Prizes_old (
|
||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||
activityId INTEGER NOT NULL,
|
||
name TEXT NOT NULL,
|
||
level TEXT NOT NULL CHECK(level IN ('一等奖', '二等奖', '三等奖', '参与奖', '伴手礼')),
|
||
description TEXT,
|
||
image TEXT,
|
||
quantity INTEGER DEFAULT 1,
|
||
sortOrder INTEGER DEFAULT 0,
|
||
source TEXT DEFAULT 'purchase',
|
||
sponsor TEXT,
|
||
createdAt DATETIME NOT NULL,
|
||
updatedAt DATETIME NOT NULL
|
||
);
|
||
`);
|
||
|
||
// 2. 复制数据(排除特等奖)
|
||
await manager.executeSql(`
|
||
INSERT INTO Prizes_old
|
||
SELECT * FROM Prizes WHERE level != '特等奖';
|
||
`);
|
||
|
||
// 3. 删除新表
|
||
await manager.executeSql(`DROP TABLE Prizes;`);
|
||
|
||
// 4. 重命名旧表
|
||
await manager.executeSql(`ALTER TABLE Prizes_old RENAME TO Prizes;`);
|
||
|
||
console.log(' - 特等奖等级移除完成');
|
||
}
|
||
};
|