Files
backend/docs/commands/ELIMINAR_PEDIMENTOS_DUPLICADOS.md

138 lines
3.6 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Guía del Comando eliminar_pedimentos_duplicados
## 📝 Descripción
El comando `eliminar_pedimentos_duplicados` es una herramienta de mantenimiento que identifica y elimina pedimentos duplicados dentro de una organización, conservando automáticamente el pedimento que tenga más documentos y relaciones asociadas.
## ⚙️ Funcionalidad
### Criterios de Duplicación
- Pedimentos con el mismo número dentro de una organización
- Solo se consideran duplicados dentro de la misma organización
- Se mantiene el pedimento con más:
- Documentos (Documents)
- COVEs
- E-documents
- Partidas
## 💻 Uso
### Comando Básico
```bash
python manage.py eliminar_pedimentos_duplicados
```
### Con Argumentos Opcionales
```bash
# Procesar organización específica
python manage.py eliminar_pedimentos_duplicados --organizacion="uuid-organizacion"
# Ajustar tamaño del lote
python manage.py eliminar_pedimentos_duplicados --batch-size=50
# Combinar opciones
python manage.py eliminar_pedimentos_duplicados --organizacion="uuid" --batch-size=50
```
## 🔧 Argumentos Disponibles
| Argumento | Descripción | Tipo | Default |
|-----------|-------------|------|---------|
| --organizacion | UUID de la organización a procesar | string | None |
| --batch-size | Número de pedimentos por lote | integer | 100 |
## 📊 Proceso de Ejecución
1. **Inicio**
- Validación de argumentos
- Conexión a base de datos
- Cálculo de duplicados totales
2. **Procesamiento por Lotes**
- Identificación de duplicados
- Análisis de documentos asociados
- Selección de pedimento a mantener
3. **Eliminación**
- Eliminación de COVEs asociados
- Eliminación de E-documents
- Eliminación de Partidas
- Eliminación de Documents
- Eliminación del pedimento duplicado
4. **Reporte**
- Total de grupos procesados
- Tiempo de ejecución
- Detalles de errores (si existen)
## ⚠️ Precauciones
### Antes de Ejecutar
- [x] Realizar respaldo de la base de datos
- [x] Verificar espacio en disco
- [x] Revisar carga del servidor
- [x] Confirmar permisos de usuario
### Durante la Ejecución
- No interrumpir el proceso
- Monitorear uso de recursos
- Revisar logs en tiempo real
### Después de la Ejecución
- Verificar integridad de datos
- Revisar logs de errores
- Documentar cambios realizados
## 🔍 Monitoreo
### Logs y Salidas
- Progreso por lote
- Errores encontrados
- Resumen de operaciones
- Tiempo total de ejecución
### Mensajes de Estado
- ✓ Operación exitosa
- ✗ Error en la operación
- Información de progreso
## 🚨 Solución de Problemas
### Errores Comunes
1. **Timeout de Base de Datos**
- Reducir tamaño del lote
- Verificar conexión a BD
- Revisar índices de la tabla
2. **Memoria Insuficiente**
- Ajustar batch-size
- Verificar recursos del servidor
- Liberar memoria cache
3. **Errores de Permisos**
- Verificar permisos de usuario
- Confirmar acceso a tablas
- Revisar configuración de BD
## 📌 Notas Importantes
- La eliminación es permanente
- El proceso es transaccional por lote
- Se puede reanudar si se interrumpe
- Los cambios afectan a relaciones en cascada
## 🔄 Mantenimiento
### Recomendaciones
1. Ejecutar periódicamente
2. Mantener respaldos actualizados
3. Revisar logs regularmente
4. Ajustar parámetros según necesidad
### Mejor Momento para Ejecutar
- Durante horas de bajo tráfico
- Después de respaldos programados
- Cuando el sistema está menos cargado
## 📚 Referencias
- Documentación de Django Management Commands
- Logs del sistema
- Documentación de la base de datos