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 PNPM_HOME="/pnpm"
|
||||||
ENV PATH="$PNPM_HOME:$PATH"
|
ENV PATH="$PNPM_HOME:$PATH"
|
||||||
RUN corepack enable
|
RUN corepack enable
|
||||||
|
RUN apt-get update -y && apt-get install -y openssl
|
||||||
|
|
||||||
# Set work directory
|
# Set work directory
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
# Copy package.json from build-runner
|
# Copy package.json from build-runner
|
||||||
COPY --from=build-runner /tmp/app/package.json /app/package.json
|
COPY --from=build-runner /tmp/app/package.json /app/package.json
|
||||||
|
COPY prisma .
|
||||||
|
COPY .env .
|
||||||
|
|
||||||
# Install dependencies
|
# Install dependencies
|
||||||
RUN pnpm install --prod
|
RUN pnpm install --prod
|
||||||
|
RUN npx prisma migrate deploy
|
||||||
|
|
||||||
# Move build files
|
# Move build files
|
||||||
COPY --from=build-runner /tmp/app/build /app/build
|
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": {
|
"dependencies": {
|
||||||
"@discordx/importer": "^1.3.0",
|
"@discordx/importer": "^1.3.0",
|
||||||
"@discordx/pagination": "^3.5.1",
|
"@discordx/pagination": "^3.5.1",
|
||||||
"better-sqlite3": "^11.0.0",
|
"@prisma/client": "5.17.0",
|
||||||
"chalk": "^4.1.2",
|
"chalk": "^4.1.2",
|
||||||
"discord.js": "^14.15.3",
|
"discord.js": "^14.15.3",
|
||||||
"discordx": "^11.9.2",
|
"discordx": "^11.9.2",
|
||||||
"dotenv": "^16.4.5",
|
"dotenv": "^16.4.5"
|
||||||
"quick.db": "^9.1.7"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/node": "^20.14.1",
|
"@types/node": "^20.14.1",
|
||||||
@ -26,6 +25,7 @@
|
|||||||
"esbuild-plugin-version-injector": "^1.2.1",
|
"esbuild-plugin-version-injector": "^1.2.1",
|
||||||
"nodemon": "^3.1.3",
|
"nodemon": "^3.1.3",
|
||||||
"prettier": "^3.3.0",
|
"prettier": "^3.3.0",
|
||||||
|
"prisma": "^5.17.0",
|
||||||
"tsup": "^8.1.0",
|
"tsup": "^8.1.0",
|
||||||
"tsx": "^4.12.0",
|
"tsx": "^4.12.0",
|
||||||
"typescript": "5.4.5"
|
"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 { PrismaClient } from '@prisma/client'
|
||||||
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'),
|
|
||||||
})
|
|
||||||
|
|
||||||
export enum DBTableEnum {
|
export const db = new PrismaClient()
|
||||||
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'
|
|
||||||
}
|
|
||||||
|
Loading…
Reference in New Issue
Block a user