refactor: replace Prisma ORM runtime with Drizzle ORM facade
- Replace Prisma client runtime with Drizzle ORM (zero Prisma engine/query engine in production) - Add Prisma-compatible facade (@/lib/prisma-facade.ts) backed by Drizzle for backwards compatibility - Runtime queries route through Drizzle ORM; @prisma/client is now devDependency (types only) - Remove @prisma/adapter-mariadb dependency; delete prisma-pool.ts and types/prisma.ts - New Drizzle schema layer: src/db/schema.ts (176 tables) and src/lib/db.ts (connection) - Update README documenting the dual-layer ORM architecture - Restore src/generated/ gitignore (build artifact for local type generation) - 0 TypeScript errors, 583 tests passing The facade intentionally uses `any` types to match the Prisma Client API surface, allowing existing code to run unmodified while routing queries through Drizzle at runtime.
This commit is contained in:
1 parent
9d1c71d926
commit
56061e41d4
52 files changed
+5825
-748
No files matched your search
@@ -1,19 +0,0 @@
|
||||
import type { Ban, User, UsersCurrency } from "@/generated/prisma/client";
|
||||
|
||||
export type UserWithCurrencies = User & { currencies: UsersCurrency[] };
|
||||
export type UserWithPermission = User & { permission: { rankName: string } };
|
||||
export type UserPublicPreview = Pick<
|
||||
User,
|
||||
"id" | "username" | "look" | "motto"
|
||||
>;
|
||||
export interface NotificationRow {
|
||||
id: number;
|
||||
userId: number;
|
||||
type: string;
|
||||
title: string;
|
||||
message: string;
|
||||
link: string | null;
|
||||
readAt: string | null;
|
||||
createdAt: string;
|
||||
}
|
||||
export type BanWithStaff = Ban & { staff: Pick<User, "id" | "username"> };
|
||||
Reference in new issue
Block a user