Node.js met Prisma
Prisma is een ORM: je beschrijft je tabellen in een schema en werkt met getypte objecten in plaats van ruwe SQL.
Installeren
bashnpm install prisma @prisma/client npx prisma init
Schema instellen
Zet in prisma/schema.prisma de provider op mysql en een voorbeeldmodel:
prismadatasource db { provider = "mysql" url = env("DATABASE_URL") } generator client { provider = "prisma-client-js" } model Product { id Int @id @default(autoincrement()) naam String prijs Decimal @db.Decimal(10, 2) }
De database-URL
Prisma gebruikt één DATABASE_URL. Stel die samen uit de losse DB_* variabelen. Voeg in je app onder Cloud → Apps → tabblad Variabelen een variabele toe:
textDATABASE_URL = mysql://DB_USER:DB_PASS@DB_HOST:DB_PORT/DB_NAME
Of bouw hem in prisma.config.ts uit de bestaande variabelen:
tsimport { defineConfig } from "prisma/config"; export default defineConfig({ schema: "prisma/schema.prisma", datasource: { url: `mysql://${process.env.DB_USER}:${process.env.DB_PASS}@${process.env.DB_HOST}:${process.env.DB_PORT}/${process.env.DB_NAME}`, }, });
Migreren en queryen
bashnpx prisma migrate dev --name init
tsimport { PrismaClient } from "@prisma/client"; const prisma = new PrismaClient(); // Aanmaken await prisma.product.create({ data: { naam: "Toetsenbord", prijs: 49.99 } }); // Ophalen const goedkoop = await prisma.product.findMany({ where: { prijs: { lt: 100 } }, orderBy: { prijs: "desc" }, });
MariaDB-adapter
Gebruik je de nieuwere Prisma-adapters? Installeer npm i @prisma/adapter-mariadb en geef de losse DB_* variabelen door aan new PrismaMariaDb({ host, user, password, database, port }). Dat geeft Prisma MySQL/MariaDB-ondersteuning zonder aparte connection string.
Vergeet de build-stap niet
Draai npx prisma generate (en zo nodig migrate deploy) tijdens je build. Dat kan via het post-build commando in de app-instellingen.
Meer in Node.js