From 6b50100ba71388ea679ab39f8663eba1bc23f565 Mon Sep 17 00:00:00 2001 From: Norbert Maciaszek Date: Tue, 25 Nov 2025 12:35:31 +0100 Subject: [PATCH] Add database seeding functionality, update Prisma configuration, and create seed script for initial data population --- Dockerfile | 1 + prisma.config.ts | 19 ++++++++++--------- prisma/seed.ts | 25 +++++++++++++++++++++++++ 3 files changed, 36 insertions(+), 9 deletions(-) create mode 100644 prisma/seed.ts diff --git a/Dockerfile b/Dockerfile index 8a22321..89b9ac4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,6 +14,7 @@ COPY prisma ./prisma RUN npx prisma migrate deploy RUN npx prisma generate +RUN npx prisma db seed COPY . . diff --git a/prisma.config.ts b/prisma.config.ts index 9c5e959..d3e453d 100644 --- a/prisma.config.ts +++ b/prisma.config.ts @@ -1,14 +1,15 @@ // This file was generated by Prisma and assumes you have installed the following: // npm install --save-dev prisma dotenv -import "dotenv/config"; -import { defineConfig, env } from "prisma/config"; +import 'dotenv/config'; +import { defineConfig, env } from 'prisma/config'; export default defineConfig({ - schema: "prisma/schema.prisma", - migrations: { - path: "prisma/migrations", - }, - datasource: { - url: env("DATABASE_URL"), - }, + schema: 'prisma/schema.prisma', + migrations: { + seed: 'node prisma/seed.ts', + path: 'prisma/migrations' + }, + datasource: { + url: env('DATABASE_URL') + } }); diff --git a/prisma/seed.ts b/prisma/seed.ts new file mode 100644 index 0000000..bc6b32d --- /dev/null +++ b/prisma/seed.ts @@ -0,0 +1,25 @@ +import { PrismaBetterSqlite3 } from '@prisma/adapter-better-sqlite3'; +import { PrismaClient } from '@prisma/client'; +import { env } from 'prisma/config'; + +const adapter = new PrismaBetterSqlite3({ + url: env('DATABASE_URL') || '' +}); +const db = new PrismaClient({ + adapter +}); +async function seed() { + const year = new Date().getFullYear(); + await db.year.create({ + data: { + year, + budget: 3000 + } + }); +} + +seed() + .catch((e) => {}) + .finally(async () => { + await db.$disconnect(); + });