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