prisma/prisma

resetting database data

ClauWeb69 opened this issue · 0 comments

Bug description

every time I do npx prisma migrate dev even without having made any changes of any kind, without even inserting records into the database, it asks me to reset the database

Drift detected: Your database schema is not in sync with your migration history.

The following is a summary of the differences between the expected database schema given your migrations files, and the actual schema of the database.

It should be understood as the set of changes to get from the expected schema to the actual schema.

[*] Changed the course table
[-] Removed foreign key on columns (course_CategoryId)
[-] Removed foreign key on columns (creatorId)
[-] Removed foreign key on columns (teacherId)

[*] Changed the course_module table
[-] Removed foreign key on columns (courseId)

[*] Changed the course_resources table
[-] Removed foreign key on columns (courseId)

[*] Changed the team_company table
[-] Removed foreign key on columns (teamManagerId)

[*] Changed the team_member table
[-] Removed foreign key on columns (teamId)
[-] Removed foreign key on columns (userId)

[*] Changed the ticket table
[-] Removed foreign key on columns (createdByUserId)
[-] Removed foreign key on columns (recipientId)

[*] Changed the ticket_message table
[-] Removed foreign key on columns (senderId)
[-] Removed foreign key on columns (ticketId)

[*] Changed the transactions table
[-] Removed foreign key on columns (userId)

[*] Changed the user_course_module_progression table
[-] Removed foreign key on columns (moduleId)
[-] Removed foreign key on columns (userId)

[*] Changed the user_subsciption table
[-] Removed foreign key on columns (subscriptionId)
[-] Removed foreign key on columns (userId)

? We need to reset the MySQL database "...." at "localhost:3306"
Do you want to continue? All data will be lost. » (y/N)

How to reproduce

<--- npx prisma migrate dev --->

generator client {
  provider = "prisma-client-js"
}

datasource db {
  provider = "mysql"
  url      = env("DATABASE_URL")
}

model User {
  id                             Int                              @id @default(autoincrement())
  email                          String                           @unique
  username                       String                           @unique
  firstname                      String?
  lastname                       String?
  avatar                         String?
  role                           Role                             @default(USER)
  ban                            Boolean                          @default(false)
  ticketsCreatedByUser           Ticket[]                         @relation("CreatedByUser")
  ticketsReceivedByUser          Ticket[]                         @relation("ReceivedByUser")
  User_Course_Module_Progression User_Course_Module_Progression[]
  User_Subsciption               User_Subsciption[]
  Transactions                   Transactions[]
  Ticket_Message                 Ticket_Message[]
  CourseCreator                  Course[]                         @relation("Creator")
  CourseTeacher                  Course[]                         @relation("Teacher")
  Team_Company                   Team_Company[]                   @relation("TeamManager")
  TeamMember                     Team_Member[]                    @relation("TeamMember")
}

model User_Course_Module_Progression {
  id       Int           @id @default(autoincrement())
  userId   Int
  moduleId Int
  dataOpen DateTime      @default(now()) @db.Timestamp(0)
  module   User          @relation(fields: [userId], references: [id])
  user     Course_Module @relation(fields: [moduleId], references: [id])
}

model User_Subsciption {
  id             Int           @id @default(autoincrement())
  userId         Int
  startDate      DateTime      @default(now()) @db.Timestamp(0)
  expireDate     DateTime      @db.Timestamp(0)
  User           User          @relation(fields: [userId], references: [id])
  Subscription   Subscription? @relation(fields: [subscriptionId], references: [id])
  subscriptionId Int?
}

model Subscription {
  id               Int                @id @default(autoincrement())
  name             String             @default("Free")
  level            Int                @default(0)
  User_Subsciption User_Subsciption[]
}

model Course {
  id                Int                @id @default(autoincrement())
  title             String?
  description       Json?
  caption           String?
  image             String?
  creation_date     DateTime           @default(now()) @db.Timestamp(0)
  type              CourseType         @default(ASYNC)
  linkMeet          String?
  modules           Course_Module[]
  teacherId         Int?
  creatorId         Int?
  Teacher           User?              @relation("Teacher", fields: [teacherId], references: [id])
  Creator           User?              @relation("Creator", fields: [creatorId], references: [id])
  Course_Category   Course_Category?   @relation(fields: [course_CategoryId], references: [id])
  course_CategoryId Int?
  Certificate       String?
  Course_Resources  Course_Resources[]
}

model Course_Resources {
  id       Int     @id @default(autoincrement())
  courseId Int
  name     String?
  path     String?
  type     String?
  Course   Course  @relation(fields: [courseId], references: [id])
}

model Team_Company {
  id            Int           @id @default(autoincrement())
  name          String
  teamManagerId Int
  TeamManager   User?         @relation("TeamManager", fields: [teamManagerId], references: [id])
  Team_Member   Team_Member[]
}

model Team_Member {
  id          Int           @id @default(autoincrement())
  userId      Int
  teamId      Int
  TeamCompany Team_Company? @relation(fields: [teamId], references: [id])
  TeamMember  User?         @relation("TeamMember", fields: [userId], references: [id])
}

model Course_Category {
  id     Int      @id @default(autoincrement())
  title  String
  Course Course[]
}

model Course_Module {
  id                             Int                              @id @default(autoincrement())
  courseId                       Int
  title                          String?
  content                        Json?
  order                          Int?
  type                           ModulesType?
  Course                         Course                           @relation(fields: [courseId], references: [id])
  User_Course_Module_Progression User_Course_Module_Progression[]
}

model Transactions {
  id            Int         @id @default(autoincrement())
  userId        Int
  amount        Float
  creation_date DateTime    @default(now()) @db.Timestamp(0)
  serviceId     Int
  typeId        ServiceType
  User          User        @relation(fields: [userId], references: [id])
}

model Ticket {
  id              Int              @id @default(autoincrement())
  createdByUserId Int
  recipientId     Int
  creation_date   DateTime         @default(now()) @db.Timestamp(0)
  createdByUser   User             @relation("CreatedByUser", fields: [createdByUserId], references: [id])
  recipient       User             @relation("ReceivedByUser", fields: [recipientId], references: [id])
  userId          Int?
  Ticket_Message  Ticket_Message[]
}

model Ticket_Message {
  id            Int      @id @default(autoincrement())
  ticketId      Int
  senderId      Int
  creation_date DateTime @default(now()) @db.Timestamp(0)
  message       String   @db.Text()
  Ticket        Ticket   @relation(fields: [ticketId], references: [id])
  Sender        User     @relation(fields: [senderId], references: [id])
}

enum CourseType {
  SYNC
  ASYNC
}

enum ServiceType {
  SUBSCRIPTION
  LIVECOURSE
}

enum ModulesType {
  VIDEO
  QUIZ
  SLIDE
}

enum Role {
  USER
  TEAMMANAGER
  TEACHER
  ADMIN
}

Environment & setup

Database Mysql locahost

Prisma Version

5.14.0