mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-04-26 06:44:58 +00:00
107 lines
2.5 KiB
Markdown
107 lines
2.5 KiB
Markdown
# Database Migration Complete
|
|
|
|
## Files Created
|
|
|
|
1. **Prisma Schema**: `prisma/schema.prisma`
|
|
- Comprehensive schema with all 18+ models
|
|
- Supports SQLite, PostgreSQL, and MySQL
|
|
|
|
2. **Prisma Client**: `src/lib/prisma.ts`
|
|
- Singleton pattern for Prisma Client
|
|
- Proper cleanup in development mode
|
|
|
|
3. **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
|
|
|
|
4. **Migration Script**: `scripts/migrate-to-prisma.cjs`
|
|
- Backs up old database.ts to database-kv-backup.ts
|
|
- Copies database-prisma.ts to database.ts
|
|
|
|
5. **Documentation**:
|
|
- `docs/PRISMA_MIGRATION.md` - Migration guide
|
|
- `docs/database/PRISMA_SETUP.md` - Setup instructions
|
|
|
|
## Next Steps
|
|
|
|
### Option 1: Automatic Migration (Recommended)
|
|
```bash
|
|
node scripts/migrate-to-prisma.cjs
|
|
npm run db:generate
|
|
npm run db:push
|
|
```
|
|
|
|
### Option 2: Manual Migration
|
|
```bash
|
|
# 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:
|
|
```bash
|
|
# 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:
|
|
```bash
|
|
# 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:
|
|
- [Prisma Migration Guide](./PRISMA_MIGRATION.md)
|
|
- [Prisma Setup](./database/PRISMA_SETUP.md)
|