LukBot Prisma & Redis
When to use
- •Editing
prisma/schema.prismaor adding migrations - •Changing DatabaseService, Redis client, or operations in
packages/shared - •Adding or changing Redis key patterns or TTLs
Prisma
- •Schema:
prisma/schema.prismaat repo root. Generator output:../node_modules/.prisma/client. - •Client: Single instance via
packages/shared/src/utils/database/prismaClient.ts. Used by DatabaseService and other shared services. - •Commands: From repo root —
npm run db:generate,npm run db:migrate,npm run db:deploy,npm run db:studio. Migrations live inprisma/migrations/. - •Models: User, Guild, GuildSettings, UserSession, GuildSession, TrackHistory, CommandUsage, RateLimit, Download, Recommendation, ReactionRole*, RoleExclusion. Do not duplicate schema in code; use generated client types.
Redis
- •Client:
packages/shared/src/services/redis/— client, config, eventHandlers, operations (base, key, string). - •Usage: Cache, sessions, rate limits, track history keys as defined in shared. Use operations modules; avoid ad-hoc key strings in bot/backend.
- •Keys: Follow existing key builders and namespaces; document new keys in shared types or config.
Conventions
- •No raw Prisma/Redis usage in
packages/botorpackages/backend; go through@lukbot/sharedservices. - •Migrations: additive changes preferred; avoid destructive changes without a clear migration path and backup.