Migraciones y seed
Migraciones (Flask-Migrate / Alembic)
Las migraciones viven en migrations/versions/ con numeración incremental
(p. ej. 118_..., 127_padron_habitantes_territorio.py,
128_padron_habitantes_habitantes.py).
# Aplicar todas las migraciones pendientes
flask db upgrade
# Tras cambiar modelos: generar una nueva migración
flask db migrate -m "descripción del cambio"
flask db upgrade
Revisar la migración generada
Alembic autogenera un borrador que debe revisarse antes de aplicarlo (especialmente en cambios de tipo, índices o tablas particionadas como las de auditoría MOS).
Seed de datos iniciales
El sembrado crea/actualiza los datos base de arranque: entidad, roles RBAC, catálogo de permisos, roles funcionales y datos de ejemplo. Es idempotente en sus partes canónicas (permisos y roles).
Seed por módulo
Algunos módulos tienen su propio sembrado de permisos y roles, invocado desde el seed general o de forma específica. Ejemplo (Registro):
seed_permisos_registro()— crea/actualiza permisosregistro:*.crear_rol_jefe_registro(entidad_id)— rol "Jefe de Registro".asignar_permisos_a_roles_base(entidad_id)— Jefe de Departamento, Colaborador.seed_registro(entidad_id=None)— sembrado completo del módulo.
Orden recomendado
flask db upgrade(esquema).python seed.py(datos base + permisos/roles).- Sembrados específicos de catálogos externos si procede (p. ej. DIR3 vía
POST /api/registro/dir3/seedo importación de CSV).
Catálogos externos
| Catálogo | Cómo se carga |
|---|---|
| DIR3 (organismos) | Seed básico incluido o importación del CSV oficial MINHAP. |
| Códigos postales | Módulo codigos_postales (catálogo global). |
| Callejero INE (Padrón) | Importador CSV tolerante del módulo Padrón. |