Update prisma/READMEprisma.md

Made a bit more readable
This commit is contained in:
Nicolas 2025-07-16 08:42:27 -04:00
parent bff8fdf178
commit b27c32782d

View File

@ -3,22 +3,24 @@
Ce document court présente la configuration de Prisma et les conventions à respecter dans `prisma/schema.prisma`. Ce document court présente la configuration de Prisma et les conventions à respecter dans `prisma/schema.prisma`.
<source> http://prisma.io/docs/orm/prisma-schema <source> http://prisma.io/docs/orm/prisma-schema
`## 1. Installation` ### `Installation`
npm install prisma @prisma/client --save-dev npm install prisma @prisma/client --save-dev
npx prisma init npx prisma init
<Le fichier .env est généré à la racine >Le fichier .env est généré à la racine
`##2. Fichier .env` ### `Fichier .env`
<Définissez votre URL de connexion PostgreSQL : <Définissez votre URL de connexion PostgreSQL :
- `DATABASE_URL`="postgresql://<DB_USER>:<DB_PASSWORD>@<HOST>:<PORT>/<DB_NAME>?schema=public" - `DATABASE_URL`="postgresql://<DB_USER>:<DB_PASSWORD>@<HOST>:<PORT>/<DB_NAME>?schema=public"
***
`##3. Structure de prisma/schema.prisma` ### `Structure de prisma/schema.prisma`
```graphql
generator client { generator client {
provider = "prisma-client-js" provider = "prisma-client-js"
output = "../generated/prisma" output = "../generated/prisma"
@ -34,43 +36,39 @@ enum Roles {
ADMIN ADMIN
CUSTOMER CUSTOMER
EMPLOYEE EMPLOYEE
// #
} }
model User { model User {
user_id Int @id @default(autoincrement()) user_id Int @id @default(autoincrement())
first_name String first_name String
last_name String last_name String
email String? @unique email String? @unique # le ? de 'String#' indique NULLABLE
# ^^^ le ? indique NULLABLE
role Roles @default(USER) role Roles @default(USER)
created_at DateTime @default(now()) created_at DateTime @default(now())
customer Customers? @relation("UserCustomer") customer Customers? @relation("UserCustomer") # back-relation du model/table customers
# ^^^ back-relation du model/table customers
@@map("users")
# ^^^ mappe vers la table “users” @@map("users") # mappe vers la table 'users'
} }
```graphql
model Customers { model Customers {
customer_id Int @id @default(autoincrement()) customer_id Int @id @default(autoincrement())
user Users @relation("UserCustomer", fields: [user_id], references:[user_id]) # foreign key relation
user Users @relation("UserCustomer", fields: [user_id], references:[user_id]) user_id Int @unique # actual foreign key
# ^^^ FK relation
user_id Int @unique
# ^^^ actual FK
invoice_id Int @unique invoice_id Int @unique
role Roles @default(CUSTOMER) role Roles @default(CUSTOMER)
@@map("customers") @@map("customers") # mappe vers la table 'customers'
# ^^^ mappe vers la table “customers”
} }
```
***
`##### Conventions #####` ### `Conventions`
`Modèles` : nom en PascalCase (singulier) → map vers table lowercase avec @@map("…"). `Modèles` : nom en PascalCase (singulier) → map vers table lowercase avec @@map("…").