Merge branch 'dev/setup/modules/MatthieuH' of git.targo.ca:Targo/targo_backend into dev/setup/modules/MatthieuH
This commit is contained in:
commit
77da43e0ed
|
|
@ -3,22 +3,24 @@
|
|||
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
|
||||
|
||||
`## 1. Installation`
|
||||
### `Installation`
|
||||
|
||||
npm install prisma @prisma/client --save-dev
|
||||
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 :
|
||||
|
||||
- `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 {
|
||||
provider = "prisma-client-js"
|
||||
output = "../generated/prisma"
|
||||
|
|
@ -34,43 +36,39 @@ enum Roles {
|
|||
ADMIN
|
||||
CUSTOMER
|
||||
EMPLOYEE
|
||||
// …
|
||||
# …
|
||||
}
|
||||
|
||||
model User {
|
||||
user_id Int @id @default(autoincrement())
|
||||
user_id Int @id @default(autoincrement())
|
||||
first_name String
|
||||
last_name String
|
||||
email String? @unique
|
||||
# ^^^ le ? indique NULLABLE
|
||||
role Roles @default(USER)
|
||||
created_at DateTime @default(now())
|
||||
email String? @unique # le ? de 'String#' indique NULLABLE
|
||||
role Roles @default(USER)
|
||||
created_at DateTime @default(now())
|
||||
|
||||
customer Customers? @relation("UserCustomer")
|
||||
# ^^^ back-relation du model/table customers
|
||||
customer Customers? @relation("UserCustomer") # back-relation du model/table customers
|
||||
|
||||
@@map("users")
|
||||
# ^^^ mappe vers la table “users”
|
||||
|
||||
@@map("users") # mappe vers la table 'users'
|
||||
}
|
||||
|
||||
|
||||
```graphql
|
||||
model Customers {
|
||||
customer_id Int @id @default(autoincrement())
|
||||
|
||||
user Users @relation("UserCustomer", fields: [user_id], references:[user_id])
|
||||
# ^^^ FK relation
|
||||
|
||||
user_id Int @unique
|
||||
# ^^^ actual FK
|
||||
|
||||
user Users @relation("UserCustomer", fields: [user_id], references:[user_id]) # foreign key relation
|
||||
user_id Int @unique # actual foreign key
|
||||
invoice_id Int @unique
|
||||
role Roles @default(CUSTOMER)
|
||||
|
||||
@@map("customers")
|
||||
# ^^^ mappe vers la table “customers”
|
||||
@@map("customers") # mappe vers la table 'customers'
|
||||
}
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
`##### Conventions #####`
|
||||
### `Conventions`
|
||||
|
||||
`Modèles` : nom en PascalCase (singulier) → map vers table lowercase avec @@map("…").
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user