Add database seeding functionality, update Prisma configuration, and create seed script for initial data population

This commit is contained in:
Norbert Maciaszek
2025-11-25 12:35:31 +01:00
parent 678605b7bc
commit 6b50100ba7
3 changed files with 36 additions and 9 deletions

View File

@@ -14,6 +14,7 @@ COPY prisma ./prisma
RUN npx prisma migrate deploy RUN npx prisma migrate deploy
RUN npx prisma generate RUN npx prisma generate
RUN npx prisma db seed
COPY . . COPY . .

View File

@@ -1,14 +1,15 @@
// This file was generated by Prisma and assumes you have installed the following: // This file was generated by Prisma and assumes you have installed the following:
// npm install --save-dev prisma dotenv // npm install --save-dev prisma dotenv
import "dotenv/config"; import 'dotenv/config';
import { defineConfig, env } from "prisma/config"; import { defineConfig, env } from 'prisma/config';
export default defineConfig({ export default defineConfig({
schema: "prisma/schema.prisma", schema: 'prisma/schema.prisma',
migrations: { migrations: {
path: "prisma/migrations", seed: 'node prisma/seed.ts',
path: 'prisma/migrations'
}, },
datasource: { datasource: {
url: env("DATABASE_URL"), url: env('DATABASE_URL')
}, }
}); });

25
prisma/seed.ts Normal file
View File

@@ -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();
});