Initial commit
This commit is contained in:
83
MIGRATION_PRISMA.md
Normal file
83
MIGRATION_PRISMA.md
Normal file
@@ -0,0 +1,83 @@
|
||||
# Guía de Migración a Prisma ORM
|
||||
|
||||
## Opción 1: FastAPI + Prisma (Recomendado)
|
||||
|
||||
### Pasos para migrar:
|
||||
|
||||
1. **Instalar Prisma CLI y dependencias:**
|
||||
```bash
|
||||
npm install
|
||||
pip install -r requirements_prisma.txt
|
||||
```
|
||||
|
||||
2. **Configurar DATABASE_URL en .env:**
|
||||
```env
|
||||
DATABASE_URL="postgresql://usuario:password@localhost:5432/pedidos_clientes"
|
||||
```
|
||||
|
||||
3. **Generar cliente Prisma:**
|
||||
```bash
|
||||
npm run prisma:generate
|
||||
# O directamente:
|
||||
prisma generate
|
||||
```
|
||||
|
||||
4. **Crear migración inicial:**
|
||||
```bash
|
||||
npm run prisma:migrate
|
||||
# O:
|
||||
prisma migrate dev --name init
|
||||
```
|
||||
|
||||
5. **Aplicar migraciones:**
|
||||
```bash
|
||||
prisma migrate deploy
|
||||
```
|
||||
|
||||
## Opción 2: Mantener Django con Prisma Client Python
|
||||
|
||||
Es posible pero requiere:
|
||||
- Usar Prisma solo para queries complejas
|
||||
- Mantener Django ORM para la mayoría de operaciones
|
||||
- Configurar ambos clientes
|
||||
|
||||
**No recomendado** - Mejor migrar completamente a FastAPI.
|
||||
|
||||
## Estructura con Prisma
|
||||
|
||||
```
|
||||
prisma/
|
||||
schema.prisma # Schema de base de datos
|
||||
migrations/ # Migraciones generadas
|
||||
|
||||
app/
|
||||
prisma_client.py # Cliente Prisma inicializado
|
||||
models/ # Modelos Pydantic (opcional)
|
||||
api/ # Endpoints FastAPI
|
||||
services/ # Lógica de negocio
|
||||
```
|
||||
|
||||
## Ventajas de Prisma
|
||||
|
||||
- ✅ Type-safe queries
|
||||
- ✅ Migraciones automáticas
|
||||
- ✅ Mejor performance
|
||||
- ✅ Schema como código
|
||||
- ✅ Prisma Studio (GUI para BD)
|
||||
|
||||
## Desventajas
|
||||
|
||||
- ❌ Requiere Node.js para Prisma CLI
|
||||
- ❌ Cambio de framework (Django → FastAPI)
|
||||
- ❌ Necesita reescribir vistas y serializers
|
||||
|
||||
## ¿Continuar con la migración completa?
|
||||
|
||||
Si decides migrar, necesitaré:
|
||||
1. Reescribir todas las vistas Django → FastAPI
|
||||
2. Convertir serializers → Pydantic models
|
||||
3. Actualizar servicios para usar Prisma Client
|
||||
4. Mantener la misma funcionalidad
|
||||
|
||||
¿Quieres que proceda con la migración completa a FastAPI + Prisma?
|
||||
|
||||
Reference in New Issue
Block a user