Initial commit
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
# Prisma 6 Migration Checklist
|
||||
|
||||
## Pre-Migration
|
||||
|
||||
- [ ] Backup production database
|
||||
- [ ] Create feature branch for migration
|
||||
- [ ] Run existing tests to establish baseline
|
||||
- [ ] Document current Prisma version
|
||||
|
||||
## Schema Assessment
|
||||
|
||||
- [ ] Search for Bytes fields: `grep "Bytes" prisma/schema.prisma`
|
||||
- [ ] Search for implicit m-n relations (no explicit join table)
|
||||
- [ ] Search for reserved keywords: `grep -E "^\s*(async|await|using)\s" prisma/schema.prisma`
|
||||
- [ ] List all models and relations
|
||||
|
||||
## Code Assessment
|
||||
|
||||
- [ ] Find Buffer usage: `grep -r "Buffer\\.from\\|Buffer\\.alloc" --include="*.ts"`
|
||||
- [ ] Find toString on Bytes: `grep -r "\\.toString(" --include="*.ts"`
|
||||
- [ ] Find NotFoundError: `grep -r "NotFoundError" --include="*.ts"`
|
||||
- [ ] Document all locations requiring changes
|
||||
|
||||
## Update Dependencies
|
||||
|
||||
- [ ] Update package.json: `npm install prisma@6 @prisma/client@6`
|
||||
- [ ] Regenerate client: `npx prisma generate`
|
||||
- [ ] Verify TypeScript errors appear (expected)
|
||||
|
||||
## Schema Migration
|
||||
|
||||
- [ ] Rename any reserved keyword fields/models
|
||||
- [ ] Add `@map()` to maintain database compatibility
|
||||
- [ ] Run `npx prisma migrate dev --name v6-upgrade`
|
||||
- [ ] Review generated migration SQL
|
||||
- [ ] Test migration on development database
|
||||
|
||||
## Code Updates: Buffer → Uint8Array
|
||||
|
||||
- [ ] Create TextEncoder/TextDecoder instances
|
||||
- [ ] Replace `Buffer.from(str, 'utf-8')` with `encoder.encode(str)`
|
||||
- [ ] Replace `buffer.toString('utf-8')` with `decoder.decode(uint8array)`
|
||||
- [ ] Update type annotations: `Buffer` → `Uint8Array`
|
||||
- [ ] Handle edge cases (binary data, non-UTF8 encodings)
|
||||
|
||||
## Code Updates: NotFoundError → P2025
|
||||
|
||||
- [ ] Remove `NotFoundError` imports
|
||||
- [ ] Replace `error instanceof NotFoundError` with P2025 checks
|
||||
- [ ] Import `Prisma` from '@prisma/client'
|
||||
- [ ] Use `Prisma.PrismaClientKnownRequestError` type guard
|
||||
- [ ] Create helper functions for common error checks
|
||||
|
||||
## Testing
|
||||
|
||||
- [ ] Run TypeScript compiler: `npx tsc --noEmit`
|
||||
- [ ] Fix any remaining type errors
|
||||
- [ ] Run unit tests
|
||||
- [ ] Run integration tests
|
||||
- [ ] Test Bytes field operations manually
|
||||
- [ ] Test not-found error handling
|
||||
- [ ] Test implicit m-n queries
|
||||
|
||||
## Production Deployment
|
||||
|
||||
- [ ] Review migration SQL one final time
|
||||
- [ ] Plan maintenance window if needed
|
||||
- [ ] Deploy migration: `npx prisma migrate deploy`
|
||||
- [ ] Deploy application code
|
||||
- [ ] Monitor error logs for issues
|
||||
- [ ] Verify Bytes operations work correctly
|
||||
- [ ] Rollback plan ready if needed
|
||||
Reference in New Issue
Block a user