rework to prisma
This commit is contained in:
parent
9b164ce7be
commit
ef1c5be2b7
@ -28,15 +28,19 @@ FROM node:20-slim as prod-runner
|
||||
ENV PNPM_HOME="/pnpm"
|
||||
ENV PATH="$PNPM_HOME:$PATH"
|
||||
RUN corepack enable
|
||||
RUN apt-get update -y && apt-get install -y openssl
|
||||
|
||||
# Set work directory
|
||||
WORKDIR /app
|
||||
|
||||
# Copy package.json from build-runner
|
||||
COPY --from=build-runner /tmp/app/package.json /app/package.json
|
||||
COPY prisma .
|
||||
COPY .env .
|
||||
|
||||
# Install dependencies
|
||||
RUN pnpm install --prod
|
||||
RUN npx prisma migrate deploy
|
||||
|
||||
# Move build files
|
||||
COPY --from=build-runner /tmp/app/build /app/build
|
||||
|
BIN
db/json.sqlite-journal
Normal file
BIN
db/json.sqlite-journal
Normal file
Binary file not shown.
@ -13,12 +13,11 @@
|
||||
"dependencies": {
|
||||
"@discordx/importer": "^1.3.0",
|
||||
"@discordx/pagination": "^3.5.1",
|
||||
"better-sqlite3": "^11.0.0",
|
||||
"@prisma/client": "5.17.0",
|
||||
"chalk": "^4.1.2",
|
||||
"discord.js": "^14.15.3",
|
||||
"discordx": "^11.9.2",
|
||||
"dotenv": "^16.4.5",
|
||||
"quick.db": "^9.1.7"
|
||||
"dotenv": "^16.4.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^20.14.1",
|
||||
@ -26,6 +25,7 @@
|
||||
"esbuild-plugin-version-injector": "^1.2.1",
|
||||
"nodemon": "^3.1.3",
|
||||
"prettier": "^3.3.0",
|
||||
"prisma": "^5.17.0",
|
||||
"tsup": "^8.1.0",
|
||||
"tsx": "^4.12.0",
|
||||
"typescript": "5.4.5"
|
||||
|
1328
pnpm-lock.yaml
1328
pnpm-lock.yaml
File diff suppressed because it is too large
Load Diff
41
prisma/migrations/20240805201030_init/migration.sql
Normal file
41
prisma/migrations/20240805201030_init/migration.sql
Normal file
@ -0,0 +1,41 @@
|
||||
-- CreateTable
|
||||
CREATE TABLE "Settings" (
|
||||
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||
"welcomeChannelId" INTEGER NOT NULL,
|
||||
"feedbackChannelId" INTEGER NOT NULL,
|
||||
"portfolioChannelId" INTEGER NOT NULL,
|
||||
"makeAnOrderChannelId" INTEGER NOT NULL,
|
||||
"priceChannelId" INTEGER NOT NULL,
|
||||
"workLoadChannelId" INTEGER NOT NULL,
|
||||
"worlLoadStatus" INTEGER NOT NULL,
|
||||
"workloadMessageId" INTEGER NOT NULL
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Role" (
|
||||
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||
"welcomeRoleId" INTEGER NOT NULL,
|
||||
"tickerRoleId" INTEGER NOT NULL
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Banner" (
|
||||
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||
"welcomeUrl" TEXT NOT NULL,
|
||||
"ticketUrl" TEXT NOT NULL
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "User" (
|
||||
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||
"discordId" INTEGER NOT NULL
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Ticket" (
|
||||
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||
"channelId" INTEGER NOT NULL,
|
||||
"closed" BOOLEAN NOT NULL,
|
||||
"userId" INTEGER,
|
||||
CONSTRAINT "Ticket_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE SET NULL ON UPDATE CASCADE
|
||||
);
|
3
prisma/migrations/migration_lock.toml
Normal file
3
prisma/migrations/migration_lock.toml
Normal file
@ -0,0 +1,3 @@
|
||||
# Please do not edit this file manually
|
||||
# It should be added in your version-control system (i.e. Git)
|
||||
provider = "sqlite"
|
46
prisma/schema.prisma
Normal file
46
prisma/schema.prisma
Normal file
@ -0,0 +1,46 @@
|
||||
generator client {
|
||||
provider = "prisma-client-js"
|
||||
}
|
||||
|
||||
datasource db {
|
||||
provider = "sqlite"
|
||||
url = env("DATABASE_URL")
|
||||
}
|
||||
|
||||
model Settings {
|
||||
id Int @id @default(autoincrement())
|
||||
welcomeChannelId Int
|
||||
feedbackChannelId Int
|
||||
portfolioChannelId Int
|
||||
makeAnOrderChannelId Int
|
||||
priceChannelId Int
|
||||
workLoadChannelId Int
|
||||
worlLoadStatus Int
|
||||
workloadMessageId Int
|
||||
}
|
||||
|
||||
model Role {
|
||||
id Int @id @default(autoincrement())
|
||||
welcomeRoleId Int
|
||||
tickerRoleId Int
|
||||
}
|
||||
|
||||
model Banner {
|
||||
id Int @id @default(autoincrement())
|
||||
welcomeUrl String
|
||||
ticketUrl String
|
||||
}
|
||||
|
||||
model User {
|
||||
id Int @id @default(autoincrement())
|
||||
discordId Int
|
||||
tickets Ticket[]
|
||||
}
|
||||
|
||||
model Ticket {
|
||||
id Int @id
|
||||
channelId Int
|
||||
closed Boolean
|
||||
User User? @relation(fields: [userId], references: [id])
|
||||
userId Int?
|
||||
}
|
23
src/db.ts
23
src/db.ts
@ -1,22 +1,3 @@
|
||||
import path from 'node:path'
|
||||
import { QuickDB } from 'quick.db'
|
||||
import { dirname } from '@discordx/importer'
|
||||
export const db = new QuickDB({
|
||||
filePath: path.join(dirname(import.meta.url), '..', 'db', 'json.sqlite'),
|
||||
})
|
||||
import { PrismaClient } from '@prisma/client'
|
||||
|
||||
export enum DBTableEnum {
|
||||
WELCOME_CHANNEL = 'WELCOME_CHANNEL',
|
||||
WELCOME_ROLE = 'WELCOME_ROLE',
|
||||
FEEDBACK_CHANNEL = 'FEEDBACK_CHANNEL',
|
||||
PORTFOLIO_CHANNEL = 'PORTFOLIO_CHANNEL',
|
||||
MAKE_AN_ORDER_CHANNEL = 'MAKE_AN_ORDER_CHANNEL',
|
||||
PRICE_CHANNEL = 'PRICE_CHANNEL',
|
||||
BANNER_WELCOME = 'BANNER_WELCOME',
|
||||
BANNER_TICKET = 'BANNER_TICKET',
|
||||
WORKLOAD = 'WORKLOAD',
|
||||
WORKLOAD_MESSAGE = 'WORKLOAD_MESSAGE',
|
||||
WORKLOAD_CHANNEL = 'WORKLOAD_CHANNEL',
|
||||
TICKET_ROLE = 'TICKET_ROLE',
|
||||
TICKET_OWNERS = 'TICKET_OWNERS'
|
||||
}
|
||||
export const db = new PrismaClient()
|
||||
|
Loading…
Reference in New Issue
Block a user