Remove Prisma from project
- Remove @prisma/client and prisma dependencies - Delete prisma schema and database files - Remove database context from tRPC - Clean up Prisma-related scripts and environment variables - Update README to remove Prisma reference The project no longer requires a database and builds successfully.
This commit is contained in:
@@ -1,10 +1,6 @@
|
|||||||
# When adding additional environment variables, the schema in "/src/env.js"
|
# When adding additional environment variables, the schema in "/src/env.js"
|
||||||
# should be updated accordingly.
|
# should be updated accordingly.
|
||||||
|
|
||||||
# Prisma
|
|
||||||
# https://www.prisma.io/docs/reference/database-reference/connection-urls#env
|
|
||||||
|
|
||||||
|
|
||||||
REPO_URL="https://github.com/community-scripts/ProxmoxVE"
|
REPO_URL="https://github.com/community-scripts/ProxmoxVE"
|
||||||
REPO_BRANCH="main"
|
REPO_BRANCH="main"
|
||||||
SCRIPTS_DIRECTORY="scripts"
|
SCRIPTS_DIRECTORY="scripts"
|
||||||
|
|||||||
@@ -119,7 +119,6 @@ PVESciptslocal/
|
|||||||
│ │ └── page.tsx # Main page
|
│ │ └── page.tsx # Main page
|
||||||
│ └── server/ # Server-side code
|
│ └── server/ # Server-side code
|
||||||
│ └── services/ # Business logic services
|
│ └── services/ # Business logic services
|
||||||
├── prisma/ # Database schema
|
|
||||||
├── public/ # Static assets
|
├── public/ # Static assets
|
||||||
├── server.js # Main server file
|
├── server.js # Main server file
|
||||||
└── package.json # Dependencies and scripts
|
└── package.json # Dependencies and scripts
|
||||||
|
|||||||
729
package-lock.json
generated
729
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -6,10 +6,6 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "next build",
|
"build": "next build",
|
||||||
"check": "next lint && tsc --noEmit",
|
"check": "next lint && tsc --noEmit",
|
||||||
"db:generate": "prisma migrate dev",
|
|
||||||
"db:migrate": "prisma migrate deploy",
|
|
||||||
"db:push": "prisma db push",
|
|
||||||
"db:studio": "prisma studio",
|
|
||||||
"dev": "next dev",
|
"dev": "next dev",
|
||||||
"dev:server": "node server.js",
|
"dev:server": "node server.js",
|
||||||
"dev:next": "next dev --turbo",
|
"dev:next": "next dev --turbo",
|
||||||
@@ -26,7 +22,6 @@
|
|||||||
"typecheck": "tsc --noEmit"
|
"typecheck": "tsc --noEmit"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@prisma/client": "^6.16.0",
|
|
||||||
"@t3-oss/env-nextjs": "^0.13.8",
|
"@t3-oss/env-nextjs": "^0.13.8",
|
||||||
"@tanstack/react-query": "^5.87.4",
|
"@tanstack/react-query": "^5.87.4",
|
||||||
"@trpc/client": "^11.0.0",
|
"@trpc/client": "^11.0.0",
|
||||||
@@ -69,7 +64,6 @@
|
|||||||
"postcss": "^8.5.3",
|
"postcss": "^8.5.3",
|
||||||
"prettier": "^3.5.3",
|
"prettier": "^3.5.3",
|
||||||
"prettier-plugin-tailwindcss": "^0.6.11",
|
"prettier-plugin-tailwindcss": "^0.6.11",
|
||||||
"prisma": "^6.5.0",
|
|
||||||
"tailwindcss": "^4.0.15",
|
"tailwindcss": "^4.0.15",
|
||||||
"typescript": "^5.8.2",
|
"typescript": "^5.8.2",
|
||||||
"typescript-eslint": "^8.27.0",
|
"typescript-eslint": "^8.27.0",
|
||||||
|
|||||||
@@ -1,12 +0,0 @@
|
|||||||
// This is your Prisma schema file,
|
|
||||||
// learn more about it in the docs: https://pris.ly/d/prisma-schema
|
|
||||||
|
|
||||||
generator client {
|
|
||||||
provider = "prisma-client-js"
|
|
||||||
}
|
|
||||||
|
|
||||||
datasource db {
|
|
||||||
provider = "postgresql"
|
|
||||||
url = env("DATABASE_URL")
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -10,14 +10,12 @@ import { initTRPC } from "@trpc/server";
|
|||||||
import superjson from "superjson";
|
import superjson from "superjson";
|
||||||
import { ZodError } from "zod";
|
import { ZodError } from "zod";
|
||||||
|
|
||||||
import { db } from "~/server/db";
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 1. CONTEXT
|
* 1. CONTEXT
|
||||||
*
|
*
|
||||||
* This section defines the "contexts" that are available in the backend API.
|
* This section defines the "contexts" that are available in the backend API.
|
||||||
*
|
*
|
||||||
* These allow you to access things when processing a request, like the database, the session, etc.
|
* These allow you to access things when processing a request, like the session, etc.
|
||||||
*
|
*
|
||||||
* This helper generates the "internals" for a tRPC context. The API handler and RSC clients each
|
* This helper generates the "internals" for a tRPC context. The API handler and RSC clients each
|
||||||
* wrap this and provides the required context.
|
* wrap this and provides the required context.
|
||||||
@@ -26,7 +24,6 @@ import { db } from "~/server/db";
|
|||||||
*/
|
*/
|
||||||
export const createTRPCContext = async (opts: { headers: Headers }) => {
|
export const createTRPCContext = async (opts: { headers: Headers }) => {
|
||||||
return {
|
return {
|
||||||
db,
|
|
||||||
...opts,
|
...opts,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,17 +0,0 @@
|
|||||||
import { PrismaClient } from "@prisma/client";
|
|
||||||
|
|
||||||
import { env } from "~/env";
|
|
||||||
|
|
||||||
const createPrismaClient = () =>
|
|
||||||
new PrismaClient({
|
|
||||||
log:
|
|
||||||
env.NODE_ENV === "development" ? ["query", "error", "warn"] : ["error"],
|
|
||||||
});
|
|
||||||
|
|
||||||
const globalForPrisma = globalThis as unknown as {
|
|
||||||
prisma: ReturnType<typeof createPrismaClient> | undefined;
|
|
||||||
};
|
|
||||||
|
|
||||||
export const db = globalForPrisma.prisma ?? createPrismaClient();
|
|
||||||
|
|
||||||
if (env.NODE_ENV !== "production") globalForPrisma.prisma = db;
|
|
||||||
@@ -1,83 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
# Use this script to start a docker container for a local development database
|
|
||||||
|
|
||||||
# TO RUN ON WINDOWS:
|
|
||||||
# 1. Install WSL (Windows Subsystem for Linux) - https://learn.microsoft.com/en-us/windows/wsl/install
|
|
||||||
# 2. Install Docker Desktop or Podman Deskop
|
|
||||||
# - Docker Desktop for Windows - https://docs.docker.com/docker-for-windows/install/
|
|
||||||
# - Podman Desktop - https://podman.io/getting-started/installation
|
|
||||||
# 3. Open WSL - `wsl`
|
|
||||||
# 4. Run this script - `./start-database.sh`
|
|
||||||
|
|
||||||
# On Linux and macOS you can run this script directly - `./start-database.sh`
|
|
||||||
|
|
||||||
# import env variables from .env
|
|
||||||
set -a
|
|
||||||
source .env
|
|
||||||
|
|
||||||
DB_PASSWORD=$(echo "$DATABASE_URL" | awk -F':' '{print $3}' | awk -F'@' '{print $1}')
|
|
||||||
DB_PORT=$(echo "$DATABASE_URL" | awk -F':' '{print $4}' | awk -F'\/' '{print $1}')
|
|
||||||
DB_NAME=$(echo "$DATABASE_URL" | awk -F'/' '{print $4}')
|
|
||||||
DB_CONTAINER_NAME="$DB_NAME-postgres"
|
|
||||||
|
|
||||||
if ! [ -x "$(command -v docker)" ] && ! [ -x "$(command -v podman)" ]; then
|
|
||||||
echo -e "Docker or Podman is not installed. Please install docker or podman and try again.\nDocker install guide: https://docs.docker.com/engine/install/\nPodman install guide: https://podman.io/getting-started/installation"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# determine which docker command to use
|
|
||||||
if [ -x "$(command -v docker)" ]; then
|
|
||||||
DOCKER_CMD="docker"
|
|
||||||
elif [ -x "$(command -v podman)" ]; then
|
|
||||||
DOCKER_CMD="podman"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! $DOCKER_CMD info > /dev/null 2>&1; then
|
|
||||||
echo "$DOCKER_CMD daemon is not running. Please start $DOCKER_CMD and try again."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if command -v nc >/dev/null 2>&1; then
|
|
||||||
if nc -z localhost "$DB_PORT" 2>/dev/null; then
|
|
||||||
echo "Port $DB_PORT is already in use."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "Warning: Unable to check if port $DB_PORT is already in use (netcat not installed)"
|
|
||||||
read -p "Do you want to continue anyway? [y/N]: " -r REPLY
|
|
||||||
if ! [[ $REPLY =~ ^[Yy]$ ]]; then
|
|
||||||
echo "Aborting."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$($DOCKER_CMD ps -q -f name=$DB_CONTAINER_NAME)" ]; then
|
|
||||||
echo "Database container '$DB_CONTAINER_NAME' already running"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$($DOCKER_CMD ps -q -a -f name=$DB_CONTAINER_NAME)" ]; then
|
|
||||||
$DOCKER_CMD start "$DB_CONTAINER_NAME"
|
|
||||||
echo "Existing database container '$DB_CONTAINER_NAME' started"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$DB_PASSWORD" = "password" ]; then
|
|
||||||
echo "You are using the default database password"
|
|
||||||
read -p "Should we generate a random password for you? [y/N]: " -r REPLY
|
|
||||||
if ! [[ $REPLY =~ ^[Yy]$ ]]; then
|
|
||||||
echo "Please change the default password in the .env file and try again"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
# Generate a random URL-safe password
|
|
||||||
DB_PASSWORD=$(openssl rand -base64 12 | tr '+/' '-_')
|
|
||||||
sed -i '' "s#:password@#:$DB_PASSWORD@#" .env
|
|
||||||
fi
|
|
||||||
|
|
||||||
$DOCKER_CMD run -d \
|
|
||||||
--name $DB_CONTAINER_NAME \
|
|
||||||
-e POSTGRES_USER="postgres" \
|
|
||||||
-e POSTGRES_PASSWORD="$DB_PASSWORD" \
|
|
||||||
-e POSTGRES_DB="$DB_NAME" \
|
|
||||||
-p "$DB_PORT":5432 \
|
|
||||||
docker.io/postgres && echo "Database container '$DB_CONTAINER_NAME' was successfully created"
|
|
||||||
Reference in New Issue
Block a user