Skip to content

Commit

Permalink
refactor(Prisma): ♻️ Fix Translation relations + Accept data loss pro…
Browse files Browse the repository at this point in the history
…to DB
  • Loading branch information
ThomasRitaine committed May 2, 2023
1 parent 4485f34 commit a08ced8
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 47 deletions.
2 changes: 1 addition & 1 deletion docker-compose.dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ services:
ports:
- "5555:5555"
# We use db push for now because we don't have any migrations yet, prototyping the database
command: sh -c "npm install --loglevel info && npx prisma db push && (npx prisma studio &) && npm run start:dev"
command: sh -c "npm install --loglevel info && npx prisma db push --accept-data-loss && (npx prisma studio &) && npm run start:dev"
# The following command is used to run migrations instead of db push
# command: sh -c "npm install --loglevel info && npx prisma migrate dev && (npx prisma studio &) && npm run start:dev"

Expand Down
96 changes: 50 additions & 46 deletions prisma/schema.prisma
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@ model Asso {
createdAt DateTime
updatedAt DateTime
deletedAt DateTime
descriptionShortTranslationId String
descriptionTranslationId String
descriptionShortTranslationId String @unique
descriptionTranslationId String @unique
descriptionShortTranslation Translation @relation(name: "descriptionShortTranslation", fields: [descriptionShortTranslationId], references: [id])
descriptionTranslation Translation @relation(name: "descriptionTranslation", fields: [descriptionTranslationId], references: [id])
descriptionShortTranslation Translation @relation(name: "descriptionShortTranslation", fields: [descriptionShortTranslationId], references: [id], onDelete: Cascade)
descriptionTranslation Translation @relation(name: "descriptionTranslation", fields: [descriptionTranslationId], references: [id], onDelete: Cascade)
keywords AssoKeyword[]
assoMessages AssoMessage[]
events Event[]
Expand Down Expand Up @@ -70,12 +70,12 @@ model AssoMessage {
sendAsDaymail Boolean
createdAt DateTime
assoId String
titleTranslationId String
bodyTranslationId String
titleTranslationId String @unique
bodyTranslationId String @unique
asso Asso @relation(fields: [assoId], references: [id])
titleTranslation Translation @relation(name: "titleTranslation", fields: [titleTranslationId], references: [id])
bodyTranslation Translation @relation(name: "bodyTranslation", fields: [bodyTranslationId], references: [id])
titleTranslation Translation @relation(name: "titleTranslation", fields: [titleTranslationId], references: [id], onDelete: Cascade)
bodyTranslation Translation @relation(name: "bodyTranslation", fields: [bodyTranslationId], references: [id], onDelete: Cascade)
}

model Event {
Expand All @@ -87,13 +87,15 @@ model Event {
createdAt DateTime
updatedAt DateTime
deletedAt DateTime
titleTranslationId String
descriptionTranslationId String
titleTranslationId String @unique
descriptionTranslationId String @unique
assos Asso[]
categories EventCategory[]
eventAnswers EventAnswer[]
eventPrivacy EventPrivacy[]
titleTranslation Translation @relation(name: "titleTranslation", fields: [titleTranslationId], references: [id], onDelete: Cascade)
descriptionTranslation Translation @relation(name: "descriptionTranslation", fields: [descriptionTranslationId], references: [id], onDelete: Cascade)
assos Asso[]
categories EventCategory[]
eventAnswers EventAnswer[]
eventPrivacy EventPrivacy[]
}

model EventAnswer {
Expand Down Expand Up @@ -152,24 +154,26 @@ model Semester {
}

model Translation {
id String @id @default(uuid())
french String? @db.Text
english String? @db.Text
spanish String? @db.Text
german String? @db.Text
chinese String? @db.Text
assoDescriptionShort Asso[] @relation("descriptionShortTranslation")
assoDescription Asso[] @relation("descriptionTranslation")
assoMessageTitle AssoMessage[] @relation("titleTranslation")
assoMessageTitleBody AssoMessage[] @relation("bodyTranslation")
annalReportReasonDescriptions UEAnnalReportReason[]
commentReportReasonDescriptions UECommentReportReason[]
starCriterionDescriptions UEStarCriterion[]
brancheDescriptions UTTBranche[]
filiereDescriptions UTTFiliere[]
formationDescriptions UTTFormation[]
formationFollowingMethodDescriptions UTTFormationFollowingMethod[]
id String @id @default(uuid())
fr String? @db.Text
en String? @db.Text
es String? @db.Text
de String? @db.Text
zh String? @db.Text
assoDescriptionShort Asso? @relation("descriptionShortTranslation")
assoDescription Asso? @relation("descriptionTranslation")
assoMessageTitle AssoMessage? @relation("titleTranslation")
assoMessageTitleBody AssoMessage? @relation("bodyTranslation")
eventDescription Event? @relation("descriptionTranslation")
eventTitle Event? @relation("titleTranslation")
annalReportReasonDescriptions UEAnnalReportReason?
commentReportReasonDescriptions UECommentReportReason?
starCriterionDescriptions UEStarCriterion?
brancheDescriptions UTTBranche?
filiereDescriptions UTTFiliere?
formationDescriptions UTTFormation?
formationFollowingMethodDescriptions UTTFormationFollowingMethod?
}

model UE {
Expand Down Expand Up @@ -225,9 +229,9 @@ model UEAnnalReport {

model UEAnnalReportReason {
name String @id @db.VarChar(100)
descriptionTranslationId String
descriptionTranslationId String @unique
descriptionTranslation Translation @relation(fields: [descriptionTranslationId], references: [id])
descriptionTranslation Translation @relation(fields: [descriptionTranslationId], references: [id], onDelete: Cascade)
reports UEAnnalReport[]
}

Expand Down Expand Up @@ -277,9 +281,9 @@ model UECommentReport {

model UECommentReportReason {
name String @id @db.VarChar(100)
descriptionTranslationId String
descriptionTranslationId String @unique
descriptionTranslation Translation @relation(fields: [descriptionTranslationId], references: [id])
descriptionTranslation Translation @relation(fields: [descriptionTranslationId], references: [id], onDelete: Cascade)
reports UECommentReport[]
}

Expand Down Expand Up @@ -366,9 +370,9 @@ model UEInfo {
model UEStarCriterion {
id String @id @default(uuid())
name String @db.VarChar(255)
descriptionTranslationId String
descriptionTranslationId String @unique
descriptionTranslation Translation @relation(fields: [descriptionTranslationId], references: [id])
descriptionTranslation Translation @relation(fields: [descriptionTranslationId], references: [id], onDelete: Cascade)
starVotes UEStarVote[]
}

Expand Down Expand Up @@ -610,9 +614,9 @@ model UTTBranche {
employmentRate Float?
CDIRate Float?
abroadEmploymentRate Float?
descriptionTranslationId String
descriptionTranslationId String @unique
descriptionTranslation Translation @relation(fields: [descriptionTranslationId], references: [id])
descriptionTranslation Translation @relation(fields: [descriptionTranslationId], references: [id], onDelete: Cascade)
filieres UTTFiliere[]
userBranches UserBranche[]
}
Expand All @@ -621,27 +625,27 @@ model UTTFiliere {
code String @id @db.VarChar(10)
name String @db.VarChar(255)
brancheId String
descriptionTranslationId String
descriptionTranslationId String @unique
branche UTTBranche @relation(fields: [brancheId], references: [code])
descriptionTranslation Translation @relation(fields: [descriptionTranslationId], references: [id])
descriptionTranslation Translation @relation(fields: [descriptionTranslationId], references: [id], onDelete: Cascade)
UEs UE[]
userBranches UserBranche[]
}

model UTTFormation {
name String @id @db.VarChar(100)
descriptionTranslationId String
descriptionTranslationId String @unique
descriptionTranslation Translation @relation(fields: [descriptionTranslationId], references: [id])
descriptionTranslation Translation @relation(fields: [descriptionTranslationId], references: [id], onDelete: Cascade)
userFormations UserFormation[]
}

model UTTFormationFollowingMethod {
name String @id @db.VarChar(100)
descriptionTranslationId String
descriptionTranslationId String @unique
descriptionTranslation Translation @relation(fields: [descriptionTranslationId], references: [id])
descriptionTranslation Translation @relation(fields: [descriptionTranslationId], references: [id], onDelete: Cascade)
userFormations UserFormation[]
}

Expand Down

0 comments on commit a08ced8

Please sign in to comment.