Prisma 101 : X PostgreSQL
Il est primordial que toutes les commandes terminal doivent être exécuté dans le répertoire racine du projet prisma. Autrement on risque les comportement inattendu, sans garantie d'une erreur explicite.
Créer la base de donnée PostgreSQL
Prisma Database Platform > Console > Workspace > New Project > Get started (Prisma Postgres) > Create Project
Attendez quelques instants pour que le statut de base de donnée devenir
CONNECTED.
Installer Node.js
Linux
# Download and install nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
# in lieu of restarting the shell
\. "$HOME/.nvm/nvm.sh"
# Download and install Node.js:
nvm install 24
# Verify the Node.js version:
node -v # Should print "v24.11.0".
# Verify npm version:
npm -v # Should print "11.6.1".
Pour les autres systèmes d'exploitation, consultuer le guide officiel ici
Helloworld et modèle blanche
npx try-prisma@latest \
--template databases/prisma-postgres \
--name hello-prisma \
--install npm
cd hello-prisma
Connexion
Authentification est fait par un .env fichier. Utilisons-nous l'exemple .env.example inclus en HelloWorld.
mv .env.example .env
Trouvez votre crédentiels à Project Dashboard > Connect to your database > Generate database credentials
Schema
Consulter ce guide
Dès que le schéma a été crée, exécute
npx prisma migrate dev --name init
pour initialiser la base de données
Requêtes (EN : queries)
Dans l'exemple Helloworld, vous trouvez dans le dossier src quelques exemples :
Dans chaque exemple, la première tâche est initialiser Prisma :
import { PrismaClient } from '@prisma/client';
import { withAccelerate } from '@prisma/extension-accelerate';
const prisma = new PrismaClient()
.$extends(withAccelerate());
Puis définier et exécuter les requêtes dans un fonction main() :
async function main() {
// requêtes
}
main()
.then(async () => {
await prisma.$disconnect();
})
.catch(async (e) => {
console.error(e);
await prisma.$disconnect();
process.exit(1);
});
main()est un emballage nécessaire qu'on puisse utiliserasync.
Pour créer des entrées, on utilise create() :
const dataEntry_A = await prisma.targetTable.create({
data: {
field1: 'value1',
field2: enum1,
field3: 20,
//...
// create entries in related models
relatedModel: {
create: {
field_A: 'value_A',
field_B: true,
},
},
},
// specify whether to create entries in related models
include: {
relatedModel: true,
},
});
Pour trouver des entrées, on utilise findMany() :
const queryTarget = await prisma.targetTable.findMany({
where: {
value: { contains: "key" }
},
include: { relatedModel_A: true },
cacheStrategy: {
swr: 30, // Stale while revalidate : 30 seconds
ttl: 60 // Time-to-live : 60 seconds
}
});
Pour en savoir plus sur
cacheStrategy, consulter ce guide
Prisma Studio
Pour visuellement inspecter et modifier les données, utilisez Prisma Studio
npx prisma studio
Prisma Studio est aussi disponible comme application web dans la console web de prisma
Member discussion