mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-04-25 14:25:02 +00:00
2.5 KiB
2.5 KiB
Database Migration Complete
Files Created
-
Prisma Schema:
prisma/schema.prisma- Comprehensive schema with all 18+ models
- Supports SQLite, PostgreSQL, and MySQL
-
Prisma Client:
src/lib/prisma.ts- Singleton pattern for Prisma Client
- Proper cleanup in development mode
-
New Database Layer:
src/lib/database-prisma.ts- Complete Prisma implementation
- Maintains exact same API as old database.ts
- All methods converted from spark.kv to Prisma
-
Migration Script:
scripts/migrate-to-prisma.cjs- Backs up old database.ts to database-kv-backup.ts
- Copies database-prisma.ts to database.ts
-
Documentation:
docs/PRISMA_MIGRATION.md- Migration guidedocs/database/PRISMA_SETUP.md- Setup instructions
Next Steps
Option 1: Automatic Migration (Recommended)
node scripts/migrate-to-prisma.cjs
npm run db:generate
npm run db:push
Option 2: Manual Migration
# 1. Backup current database.ts
cp src/lib/database.ts src/lib/database-kv-backup.ts
# 2. Replace with Prisma version
cp src/lib/database-prisma.ts src/lib/database.ts
# 3. Generate Prisma Client
npm run db:generate
# 4. Create database
npm run db:push
What's Changed
- Storage Backend:
spark.kv→ Prisma ORM - Data Persistence: Key-value store → Relational database (SQLite/PostgreSQL/MySQL)
- Type Safety: Runtime types → Compile-time types with Prisma
- API: No changes - Same Database class methods
Features
✅ Full type safety with TypeScript ✅ Relational data with foreign keys ✅ Connection pooling and optimization ✅ Easy to scale (SQLite → PostgreSQL) ✅ Migration tracking ✅ Same API - no code changes needed
Database Models
The schema includes:
- User, Credential
- Workflow, LuaScript, PageConfig, ModelSchema
- AppConfiguration, Comment
- ComponentNode, ComponentConfig
- CssCategory, DropdownConfig
- InstalledPackage, PackageData
- Tenant, PowerTransferRequest
- SystemConfig, SMTPConfig, PasswordResetToken
Verification
After migration, verify the setup:
# Check Prisma Client is generated
ls node_modules/@prisma/client
# Check database file exists (SQLite)
ls dev.db
# Start dev server
npm run dev
Rollback
If issues occur:
# Restore old database.ts
cp src/lib/database-kv-backup.ts src/lib/database.ts
The system will fall back to spark.kv storage.
Support
See detailed documentation: