You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tech-interview-handbook/apps/portal/prisma/seed-analysis.ts

50 lines
1.1 KiB

import { PrismaClient } from '@prisma/client';
import { generateAnalysis } from '../src/utils/offers/analysis/analysisGeneration';
const prisma = new PrismaClient();
const seedAnalysis = async () => {
console.log('Busy crunching analysis.....');
const profilesWithoutAnalysis = await prisma.offersProfile.findMany({
where: {
analysis: {
is: null,
},
},
});
console.log(
'Number of profiles found without analysis:',
profilesWithoutAnalysis.length,
);
let i = 0;
while (i < profilesWithoutAnalysis.length) {
const profile = profilesWithoutAnalysis[i];
await generateAnalysis({
ctx: { prisma, session: null },
input: { profileId: profile.id },
});
console.log(++i, ': Analysis generated for profile with id', profile.id);
}
console.log(i, 'analysis generated');
};
Promise.all([seedAnalysis()])
.then(async () => {
await prisma.$disconnect();
})
.catch(async (e) => {
console.error(e);
console.log('Analysis stopping!');
await prisma.$disconnect();
process.exit(1);
});
export {};