Files
YG-Datasets/easy-dataset-main/prisma/generate-template.js

49 lines
1.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* 此脚本用于生成空的模板数据库文件template.sqlite
* 该文件将在应用打包时被包含,并在用户首次启动应用时作为初始数据库
*/
const fs = require('fs');
const path = require('path');
const { execSync } = require('child_process');
const templatePath = path.join(__dirname, 'template.sqlite');
const sqlitePath = path.join(__dirname, 'empty.db.sqlite');
// 如果存在旧的模板文件,先删除
if (fs.existsSync(templatePath)) {
console.log('删除旧的模板数据库...');
fs.unlinkSync(templatePath);
}
// 如果存在临时数据库文件,先删除
if (fs.existsSync(sqlitePath)) {
console.log('删除临时数据库文件...');
fs.unlinkSync(sqlitePath);
}
try {
console.log('设置临时数据库路径...');
// 设置 DATABASE_URL 环境变量
process.env.DATABASE_URL = `file:${sqlitePath}`;
console.log('执行 prisma db push 创建新的数据库架构...');
// 执行 prisma db push 创建数据库架构
execSync('npx prisma db push', { stdio: 'inherit' });
console.log('将生成的数据库文件复制为模板...');
// 复制生成的数据库文件为模板
fs.copyFileSync(sqlitePath, templatePath);
console.log(`✅ 模板数据库已成功生成: ${templatePath}`);
} catch (error) {
console.error('❌ 生成模板数据库失败:', error);
process.exit(1);
} finally {
// 清理: 删除临时数据库文件
if (fs.existsSync(sqlitePath)) {
console.log('清理临时数据库文件...');
fs.unlinkSync(sqlitePath);
}
}