JB/web/scripts/export-sqlite-data.js

44 lines
1.7 KiB
JavaScript

const { PrismaClient } = require("@prisma/client");
const fs = require("fs");
const path = require("path");
const prisma = new PrismaClient();
async function exportData() {
console.log("Exporting SQLite data...");
const data = {
users: await prisma.user.findMany(),
userProfiles: await prisma.userProfile.findMany(),
candidateSkills: await prisma.candidateSkill.findMany(),
workExperiences: await prisma.workExperience.findMany(),
educations: await prisma.education.findMany(),
resumes: await prisma.resume.findMany(),
companies: await prisma.company.findMany(),
jobs: await prisma.job.findMany(),
applications: await prisma.application.findMany(),
applicationStatusHistory: await prisma.applicationStatusHistory.findMany(),
candidateNotes: await prisma.candidateNote.findMany(),
candidateTags: await prisma.candidateTag.findMany(),
companyReviews: await prisma.companyReview.findMany(),
jobAlerts: await prisma.jobAlert.findMany(),
savedJobs: await prisma.savedJob.findMany(),
savedSearches: await prisma.savedSearch.findMany(),
notifications: await prisma.notification.findMany(),
notificationPreferences: await prisma.notificationPreference.findMany(),
auditLogs: await prisma.auditLog.findMany(),
};
const outputPath = path.join(__dirname, "sqlite-export.json");
fs.writeFileSync(outputPath, JSON.stringify(data, null, 2));
console.log(`Successfully exported data to ${outputPath}:`);
console.log(`- Users: ${data.users.length}`);
console.log(`- Companies: ${data.companies.length}`);
console.log(`- Jobs: ${data.jobs.length}`);
console.log(`- Applications: ${data.applications.length}`);
}
exportData()
.catch(console.error)
.finally(() => prisma.$disconnect());