44 lines
1.7 KiB
JavaScript
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());
|