63 lines
1.6 KiB
TypeScript
63 lines
1.6 KiB
TypeScript
/**
|
|
* 脚本:更新课程的封面图片
|
|
*
|
|
* 使用方法:
|
|
* npx ts-node scripts/update-course-cover.ts
|
|
*/
|
|
|
|
import prisma from '../src/utils/prisma';
|
|
|
|
async function updateCourseCover() {
|
|
try {
|
|
console.log('🚀 开始更新课程封面...\n');
|
|
|
|
// 更新"高效沟通的艺术"课程的封面
|
|
const courseId = 'course_vertical_001';
|
|
const coverImage = 'images/a0c457c5-4a4c-4cd1-9d17-641e400ab875.PNG';
|
|
|
|
console.log(`📖 更新课程: ${courseId}`);
|
|
console.log(` - 封面: ${coverImage}`);
|
|
|
|
const course = await prisma.course.findUnique({
|
|
where: { id: courseId },
|
|
select: { id: true, title: true, coverImage: true },
|
|
});
|
|
|
|
if (!course) {
|
|
console.error(`❌ 课程不存在: ${courseId}`);
|
|
return;
|
|
}
|
|
|
|
console.log(` - 当前标题: ${course.title}`);
|
|
console.log(` - 当前封面: ${course.coverImage || 'null'}`);
|
|
|
|
// 更新封面
|
|
const updatedCourse = await prisma.course.update({
|
|
where: { id: courseId },
|
|
data: { coverImage },
|
|
select: { id: true, title: true, coverImage: true },
|
|
});
|
|
|
|
console.log(`\n✅ 更新成功!`);
|
|
console.log(` - 课程: ${updatedCourse.title}`);
|
|
console.log(` - 新封面: ${updatedCourse.coverImage}`);
|
|
|
|
} catch (error) {
|
|
console.error('❌ 更新失败:', error);
|
|
throw error;
|
|
} finally {
|
|
await prisma.$disconnect();
|
|
}
|
|
}
|
|
|
|
// 执行更新
|
|
updateCourseCover()
|
|
.then(() => {
|
|
console.log('\n✅ 脚本执行完成');
|
|
process.exit(0);
|
|
})
|
|
.catch((error) => {
|
|
console.error('\n❌ 脚本执行失败:', error);
|
|
process.exit(1);
|
|
});
|