mirror of
https://github.com/Mintplex-Labs/anything-llm.git
synced 2026-06-12 05:04:00 +03:00
Replace custom sqlite dbms with prisma (#239)
* WIP converted all sqlite models into prisma calls * modify db setup and fix ApiKey model calls in admin.js * renaming function params to be consistent * converted adminEndpoints to utilize prisma orm * converted chatEndpoints to utilize prisma orm * converted inviteEndpoints to utilize prisma orm * converted systemEndpoints to utilize prisma orm * converted workspaceEndpoints to utilize prisma orm * converting sql queries to prisma calls * fixed default param bug for orderBy and limit * fixed typo for workspace chats * fixed order of deletion to account for sql relations * fix invite CRUD and workspace management CRUD * fixed CRUD for api keys * created prisma setup scripts/docs for understanding how to use prisma * prisma dependency change * removing unneeded console.logs * removing unneeded sql escape function * linting and creating migration script * migration from depreciated sqlite script update * removing unneeded migrations in prisma folder * create backup of old sqlite db and use transactions to ensure all operations complete successfully * adding migrations to gitignore * updated PRISMA.md docs for info on how to use sqlite migration script * comment changes * adding back migrations folder to repo * Reviewing SQL and prisma integraiton on fresh repo * update inline key replacement * ensure migration script executes and maps foreign_keys regardless of db ordering * run migration endpoint * support new prisma backend * bump version * change migration call --------- Co-authored-by: timothycarambat <rambat1010@gmail.com>
This commit is contained in:
118
server/prisma/schema.prisma
Normal file
118
server/prisma/schema.prisma
Normal file
@@ -0,0 +1,118 @@
|
||||
generator client {
|
||||
provider = "prisma-client-js"
|
||||
}
|
||||
|
||||
// Uncomment the following lines and comment out the SQLite datasource block above to use PostgreSQL
|
||||
// Make sure to set the correct DATABASE_URL in your .env file
|
||||
// After swapping run `yarn prisma:setup` from the root directory to migrate the database
|
||||
//
|
||||
// datasource db {
|
||||
// provider = "postgresql"
|
||||
// url = env("DATABASE_URL")
|
||||
// }
|
||||
datasource db {
|
||||
provider = "sqlite"
|
||||
url = "file:../storage/anythingllm.db"
|
||||
}
|
||||
|
||||
model api_keys {
|
||||
id Int @id @default(autoincrement())
|
||||
secret String? @unique
|
||||
createdBy Int?
|
||||
createdAt DateTime @default(now())
|
||||
lastUpdatedAt DateTime @default(now())
|
||||
}
|
||||
|
||||
model workspace_documents {
|
||||
id Int @id @default(autoincrement())
|
||||
docId String @unique
|
||||
filename String
|
||||
docpath String
|
||||
workspaceId Int
|
||||
metadata String?
|
||||
createdAt DateTime @default(now())
|
||||
lastUpdatedAt DateTime @default(now())
|
||||
workspace workspaces @relation(fields: [workspaceId], references: [id])
|
||||
}
|
||||
|
||||
model invites {
|
||||
id Int @id @default(autoincrement())
|
||||
code String @unique
|
||||
status String @default("pending")
|
||||
claimedBy Int?
|
||||
createdAt DateTime @default(now())
|
||||
createdBy Int
|
||||
lastUpdatedAt DateTime @default(now())
|
||||
}
|
||||
|
||||
model system_settings {
|
||||
id Int @id @default(autoincrement())
|
||||
label String @unique
|
||||
value String?
|
||||
createdAt DateTime @default(now())
|
||||
lastUpdatedAt DateTime @default(now())
|
||||
}
|
||||
|
||||
model users {
|
||||
id Int @id @default(autoincrement())
|
||||
username String? @unique
|
||||
password String
|
||||
role String @default("default")
|
||||
suspended Int @default(0)
|
||||
createdAt DateTime @default(now())
|
||||
lastUpdatedAt DateTime @default(now())
|
||||
workspace_chats workspace_chats[]
|
||||
workspace_users workspace_users[]
|
||||
}
|
||||
|
||||
model document_vectors {
|
||||
id Int @id @default(autoincrement())
|
||||
docId String
|
||||
vectorId String
|
||||
createdAt DateTime @default(now())
|
||||
lastUpdatedAt DateTime @default(now())
|
||||
}
|
||||
|
||||
model welcome_messages {
|
||||
id Int @id @default(autoincrement())
|
||||
user String
|
||||
response String
|
||||
orderIndex Int?
|
||||
createdAt DateTime @default(now())
|
||||
}
|
||||
|
||||
model workspaces {
|
||||
id Int @id @default(autoincrement())
|
||||
name String
|
||||
slug String @unique
|
||||
vectorTag String?
|
||||
createdAt DateTime @default(now())
|
||||
openAiTemp Float?
|
||||
openAiHistory Int @default(20)
|
||||
lastUpdatedAt DateTime @default(now())
|
||||
openAiPrompt String?
|
||||
workspace_users workspace_users[]
|
||||
documents workspace_documents[]
|
||||
}
|
||||
|
||||
model workspace_chats {
|
||||
id Int @id @default(autoincrement())
|
||||
workspaceId Int
|
||||
prompt String
|
||||
response String
|
||||
include Boolean @default(true)
|
||||
user_id Int?
|
||||
createdAt DateTime @default(now())
|
||||
lastUpdatedAt DateTime @default(now())
|
||||
users users? @relation(fields: [user_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
||||
}
|
||||
|
||||
model workspace_users {
|
||||
id Int @id @default(autoincrement())
|
||||
user_id Int
|
||||
workspace_id Int
|
||||
createdAt DateTime @default(now())
|
||||
lastUpdatedAt DateTime @default(now())
|
||||
workspaces workspaces @relation(fields: [workspace_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
||||
users users @relation(fields: [user_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
||||
}
|
||||
Reference in New Issue
Block a user