From ea3165a0b94c9e6f256924a833b815aa8240f5dc Mon Sep 17 00:00:00 2001 From: Rafael Koch Peres Date: Sat, 11 May 2024 15:20:44 -0300 Subject: [PATCH 1/3] Add prisma seed for dev dump Add prisma seed for dev dump. Update scripts to run it automatically in docker-compose. --- docker-compose.dev.yml | 2 +- package.json | 5 ++++- prisma/seed.ts | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 prisma/seed.ts diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index ba40eebc..78d8439a 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -24,7 +24,7 @@ services: command: > sh -c "npm install && npx prisma generate && - npx prisma migrate dev && + npm run migrations:dev && npm run start:dev -- --preserveWatchOutput" db: container_name: sos-rs-db diff --git a/package.json b/package.json index 3212f2fd..c1d40ed9 100644 --- a/package.json +++ b/package.json @@ -20,9 +20,12 @@ "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", "test:e2e": "jest --config ./test/jest-e2e.json", "migrations:run": "npx prisma migrate deploy", - "migrations:dev": "npx prisma migrate dev", + "migrations:dev": "npx prisma migrate dev && npx prisma db seed", "docker:compose": "docker-compose -f docker-compose.dev.yml up" }, + "prisma": { + "seed": "ts-node prisma/seed.ts" + }, "dependencies": { "@fastify/static": "^7.0.3", "@nestjs/common": "^10.0.0", diff --git a/prisma/seed.ts b/prisma/seed.ts new file mode 100644 index 00000000..91b67b71 --- /dev/null +++ b/prisma/seed.ts @@ -0,0 +1,35 @@ +import { PrismaClient } from '@prisma/client'; +import * as fs from 'fs'; + +const prisma = new PrismaClient(); + +async function main() { + const devDump = fs.readFileSync('./prisma/dev_dump.sql', 'utf-8'); + + for (const query of devDump.split('\n')) { + if (query.trim() === '') { + continue; + } + + // ignore prisma migrations at it is already applied by migrate command + // if (query.includes('_prisma_migrations')) { + // continue; + // } + + try { + await prisma.$executeRawUnsafe(query); + } catch (e) { + console.error(e); + } + } +} + +main() + .then(async () => { + await prisma.$disconnect(); + }) + .catch(async (e) => { + console.error(e); + await prisma.$disconnect(); + process.exit(1); + }); From dee012e755ffcec3c69235db0a2ee62a647ec5c8 Mon Sep 17 00:00:00 2001 From: Rafael Koch Peres Date: Sat, 11 May 2024 17:50:13 -0300 Subject: [PATCH 2/3] Fix formatting and remove comments --- prisma/seed.ts | 5 ----- 1 file changed, 5 deletions(-) diff --git a/prisma/seed.ts b/prisma/seed.ts index 91b67b71..4fe7fd28 100644 --- a/prisma/seed.ts +++ b/prisma/seed.ts @@ -11,11 +11,6 @@ async function main() { continue; } - // ignore prisma migrations at it is already applied by migrate command - // if (query.includes('_prisma_migrations')) { - // continue; - // } - try { await prisma.$executeRawUnsafe(query); } catch (e) { From 24eca11e784d49213c53cb414884a9dc1c3602e5 Mon Sep 17 00:00:00 2001 From: Rafael Koch Peres Date: Sun, 12 May 2024 22:45:00 -0300 Subject: [PATCH 3/3] Fix imports for seed --- prisma/seed.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/prisma/seed.ts b/prisma/seed.ts index 4fe7fd28..b2a970c0 100644 --- a/prisma/seed.ts +++ b/prisma/seed.ts @@ -1,10 +1,10 @@ import { PrismaClient } from '@prisma/client'; -import * as fs from 'fs'; +import { readFileSync } from 'fs'; const prisma = new PrismaClient(); async function main() { - const devDump = fs.readFileSync('./prisma/dev_dump.sql', 'utf-8'); + const devDump = readFileSync('./prisma/dev_dump.sql', 'utf-8'); for (const query of devDump.split('\n')) { if (query.trim() === '') {