mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-04-25 14:25:02 +00:00
104 lines
2.0 KiB
Markdown
104 lines
2.0 KiB
Markdown
# Prisma Database Configuration
|
|
|
|
This directory contains the Prisma database schema and migrations.
|
|
|
|
## 📋 Files
|
|
|
|
- `schema.prisma` - Database schema definition
|
|
- `migrations/` - Database migration history
|
|
|
|
## 🚀 Quick Start
|
|
|
|
### Generate Prisma Client
|
|
|
|
```bash
|
|
npm run db:generate
|
|
```
|
|
|
|
Regenerate the Prisma client after schema changes.
|
|
|
|
### Apply Migrations
|
|
|
|
```bash
|
|
npm run db:push
|
|
```
|
|
|
|
Apply pending schema changes to database.
|
|
|
|
### View Database
|
|
|
|
```bash
|
|
npm run db:studio
|
|
```
|
|
|
|
Opens Prisma Studio for visual database management.
|
|
|
|
## 📝 Database Schema
|
|
|
|
Key entities defined in `schema.prisma`:
|
|
|
|
- **User** - System users with permission levels
|
|
- **Tenant** - Multi-tenant support
|
|
- **Package** - Feature packages
|
|
- **Schema** - Dynamic data schemas
|
|
- **Data** - JSON data storage
|
|
- **LuaScript** - Business logic scripts
|
|
- **Audit** - Activity logging
|
|
|
|
### User Levels
|
|
|
|
```prisma
|
|
enum PermissionLevel {
|
|
GUEST // Level 1 (read-only)
|
|
USER // Level 2
|
|
ADMIN // Level 3
|
|
GOD // Level 4
|
|
SUPERGOD // Level 5 (system admin)
|
|
}
|
|
```
|
|
|
|
### Sample Table
|
|
|
|
```prisma
|
|
model User {
|
|
id String @id @default(cuid())
|
|
email String @unique
|
|
password String // SHA-512 hash
|
|
level PermissionLevel
|
|
tenantId String
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
tenant Tenant @relation(fields: [tenantId], references: [id])
|
|
}
|
|
```
|
|
|
|
## 🔒 Security
|
|
|
|
- All passwords stored as SHA-512 hashes
|
|
- Multi-tenant data isolation
|
|
- Permission-based access control
|
|
- Type-safe database queries
|
|
|
|
## 📚 Migrations
|
|
|
|
Migration files track schema changes:
|
|
|
|
```bash
|
|
# List migrations
|
|
ls migrations/
|
|
|
|
# Create new migration
|
|
npx prisma migrate dev --name add_feature
|
|
|
|
# Reset database (dev only!)
|
|
npx prisma migrate reset
|
|
```
|
|
|
|
## 🔗 Related
|
|
|
|
- [Database Architecture](../docs/architecture/database.md)
|
|
- [API Development](../docs/guides/api-development.md)
|
|
- [Security Guidelines](../docs/SECURITY.md)
|
|
- [Getting Started](../docs/guides/getting-started.md)
|