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..b2a970c0 --- /dev/null +++ b/prisma/seed.ts @@ -0,0 +1,30 @@ +import { PrismaClient } from '@prisma/client'; +import { readFileSync } from 'fs'; + +const prisma = new PrismaClient(); + +async function main() { + const devDump = readFileSync('./prisma/dev_dump.sql', 'utf-8'); + + for (const query of devDump.split('\n')) { + if (query.trim() === '') { + 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); + });