d5994af431
早期 INSERT 未写 updated_at,MySQL 落成 0000-00-00,Prisma 读行失败。
58 lines
1.9 KiB
TypeScript
58 lines
1.9 KiB
TypeScript
/**
|
|
* 创建 wecom_report_push(若不存在)并写入日/周/月默认行。
|
|
* 不依赖 Prisma Client 新 model,可在 generate 之前执行。
|
|
*/
|
|
import { PrismaClient } from '@prisma/client';
|
|
|
|
const prisma = new PrismaClient();
|
|
const PLACEHOLDER = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=PENDING';
|
|
|
|
async function main() {
|
|
await prisma.$executeRawUnsafe(`
|
|
CREATE TABLE IF NOT EXISTS wecom_report_push (
|
|
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
kind VARCHAR(16) NOT NULL,
|
|
name VARCHAR(64) NOT NULL,
|
|
webhook_url VARCHAR(512) NOT NULL,
|
|
enabled TINYINT(1) NOT NULL DEFAULT 0,
|
|
mention_wecom_user_id VARCHAR(64) NULL,
|
|
send_hour INT NOT NULL DEFAULT 20,
|
|
send_minute INT NOT NULL DEFAULT 0,
|
|
send_weekday INT NOT NULL DEFAULT 1,
|
|
send_month_day INT NOT NULL DEFAULT 1,
|
|
last_sent_period VARCHAR(16) NULL,
|
|
last_sent_at DATETIME(3) NULL,
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
|
UNIQUE KEY wecom_report_push_kind_key (kind)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
|
|
`);
|
|
|
|
const seeds: Array<[string, string, number]> = [
|
|
['daily', '经营日报', 20],
|
|
['weekly', '经营周报', 9],
|
|
['monthly', '经营月报', 9],
|
|
];
|
|
for (const [kind, name, hour] of seeds) {
|
|
await prisma.$executeRawUnsafe(
|
|
`INSERT IGNORE INTO wecom_report_push
|
|
(kind, name, webhook_url, enabled, send_hour, send_minute, send_weekday, send_month_day, created_at, updated_at)
|
|
VALUES (?, ?, ?, 0, ?, 0, 1, 1, CURRENT_TIMESTAMP(3), CURRENT_TIMESTAMP(3))`,
|
|
kind,
|
|
name,
|
|
PLACEHOLDER,
|
|
hour,
|
|
);
|
|
}
|
|
console.log('migrate-wecom-report done');
|
|
}
|
|
|
|
main()
|
|
.catch((e) => {
|
|
console.error(e);
|
|
process.exit(1);
|
|
})
|
|
.finally(async () => {
|
|
await prisma.$disconnect();
|
|
});
|