84 lines
1.8 KiB
Markdown
84 lines
1.8 KiB
Markdown
# 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?
|
|
|