🔧
Django Build Error Resolver
CultivaCRM — Reporte de Diagnóstico y Corrección — 2026-06-18
✔ RESOLVED
4/4 errores corregidos
Estado final
OK
Django check passed
Errores resueltos
4
0 pendientes
Archivos tocados
3
Cambios mínimos
Pérdida de datos
0
Sin operaciones destructivas
📦
Errores de Dependencias (pip)
1
Conflicto PyJWT — djangorestframework-simplejwt 5.2.2
FIXED
Error
PyJWT 1.7.2
instalado, pero
simplejwt 5.2.2
requiere
>=2.0.0
Causa
Pin antiguo en
requirements.txt
de una rama anterior al merge
Fix
# requirements.txt — cambio quirúrgico
- PyJWT==1.7.2
+ PyJWT>=2.6,<3.0
pip install --upgrade PyJWT pip check # sin conflictos
⚙️
Errores de Configuración Django
2
DJANGO_SETTINGS_MODULE no definido
FIXED
Error
ImproperlyConfigured: DJANGO_SETTINGS_MODULE is not set
Causa
La nueva rama no incluyó la variable en el
.env
de staging
Fix
# .env (staging) — añadido
DJANGO_SETTINGS_MODULE=config.settings.development
# Verificación
python -c "import django; django.setup(); print('OK')"
✔ OK
3
apps.tenants no declarado en INSTALLED_APPS
FIXED
Error
RuntimeError: Model class apps.tenants.models.Tenant doesn't declare an explicit app_label
Causa
La nueva app
apps.tenants
(del merge) no fue registrada en
INSTALLED_APPS
Fix
# config/settings/base.py
INSTALLED_APPS = [ ...
'apps.accounts'
,
+ 'apps.tenants',
# añadido
... ]
🗄️
Errores de Migraciones
4
InconsistentMigrationHistory + columna faltante
FIXED
Error
accounts.0003_add_tenant_fk
aplicada antes que
tenants.0001_initial
→ columna
tenant_id
inexistente
Causa
El staging ya tenía
0003
aplicada (de pruebas locales) pero
tenants
nunca fue migrado
Diagnóstico
python manage.py showmigrations
accounts [X] 0001_initial [X] 0002_add_profile [X] 0003_add_tenant_fk
<-- aplicada sin dependencia
tenants [ ] 0001_initial
<-- nunca ejecutada
Fix
# 1. Retroceder accounts al estado pre-fk (fake, sin tocar datos)
python manage.py migrate accounts 0002 --fake
# 2. Aplicar tenants desde cero
python manage.py migrate tenants
# 3. Re-aplicar accounts.0003 (ahora la dependencia existe)
python manage.py migrate accounts
# 4. Verificar estado limpio
python manage.py migrate --check
✔ No pending migrations.
python manage.py check
✔ System check identified no issues (0 silenced).
🚀
Log CI/CD Post-Fix — Resultado Final
Step 1/8: FROM python:3.11-slim
✔ Using cache [3.2 MB]
Step 2/8: COPY requirements.txt .
✔ Done
Step 3/8: RUN pip install -r requirements.txt
✔ Successfully installed PyJWT-2.8.0 djangorestframework-simplejwt-5.2.2 ...
Step 4/8: ENV DJANGO_SETTINGS_MODULE=config.settings.development
✔ Done
Step 5/8: RUN python manage.py check
✔ System check identified no issues (0 silenced).
Step 6/8: RUN python manage.py migrate --check
✔ No pending migrations.
Step 7/8: RUN python manage.py collectstatic --noinput
✔ 147 static files copied to '/app/staticfiles'.
Step 8/8: CMD gunicorn config.wsgi:application --bind 0.0.0.0:8000
✔ [1] [INFO] Starting gunicorn 21.2.0
✔ [1] [INFO] Listening at: http://0.0.0.0:8000
✔✔✔ BUILD SUCCEEDED — Deploy en staging listo ✔✔✔
✔ Resumen Final
Django Status
OK
Errors Fixed
4
Files Modified
requirements.txt, .env, config/settings/base.py
Migrations
No pending · No conflicts
Data Loss
None — solo --fake para reordenar
Proyecto
🏢
CultivaCRM
SaaS B2B para agencias de marketing
🐍
Stack
Django 4.2 · DRF 3.14 · PostgreSQL 15
🌿
Rama afectada
feat/multi-tenancy → main
🎯
Entorno
Staging (CI/CD GitHub Actions)
Workflow de Resolución
Reproducir error
Captura exacta del stack trace del CI
Identificar categoría
pip · settings · INSTALLED_APPS · migrations
Leer contexto
requirements.txt, base.py, showmigrations
Aplicar fix mínimo
3 archivos · 0 refactorizaciones
manage.py check
0 issues · 0 warnings
CI/CD verde
Build + migrations + collectstatic OK
Archivos Modificados
📄
requirements.txt
pin
🔒
.env (staging)
env
⚙️
config/settings/base.py
config
No se tocaron archivos de migración. Se usó
--fake
solo para reordenar historial conocido.
Diagnósticos Ejecutados
✔
pip check
sin conflictos post-fix
✔
django.setup()
importa limpio
✔
showmigrations
todos [X] aplicados
✔
migrate --check
no pending
✔
manage.py check
0 issues
✔
collectstatic --dry-run
147 archivos OK
Tags
django 4.2
migrations
pip conflict
fixed
multi-tenancy
INSTALLED_APPS