Update prisma/READMEprisma.md
Made a bit more readable
This commit is contained in:
parent
bff8fdf178
commit
b27c32782d
|
|
@ -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")
|
@@map("users") # mappe vers la table '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("…").
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user