Download the PHP package informaticadoslago/censo-vias without Composer
On this page you can find all versions of the php package informaticadoslago/censo-vias. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download informaticadoslago/censo-vias
More information about informaticadoslago/censo-vias
Files in informaticadoslago/censo-vias
Package censo-vias
Short Description Importa el callejero del Censo Electoral del INE (fichero VIAS de ancho fijo + TiposVia.csv) a las tablas de vías y tipos de vía de una aplicación Laravel, mediante upsert por clave natural (no duplica ni cambia ids existentes).
License MIT
Informations about the package censo-vias
informaticadoslago/censo-vias
Importa el callejero del Censo Electoral del INE a las tablas de vías y tipos de vía de una aplicación Laravel ya existente.
Lee el fichero VIAS (ancho fijo, ISO-8859-1) y, opcionalmente, el
TiposVia.csv, y vuelca su contenido mediante upsert por clave natural:
las filas que ya existen se localizan por su clave (no por id), se actualizan
en su misma fila si algo cambió y conservan su id; las nuevas se
insertan. Nunca duplica, nunca vacía y nunca borra, de modo que las relaciones
que tu aplicación ya tenga contra esas tablas no se rompen.
Compatible con Laravel 10, 11, 12 y 13 y PHP 8.3+.
Qué hace, en detalle
-
Tipos de vía. Recorre el fichero
VIASrecopilando los códigos de tipo (TVIA) presentes. Por cada uno:- si ya existe en tu tabla de tipos (comparando el código sin espacios),
reutiliza su
idy no lo toca (salvo--update-names); - si no existe, lo inserta usando la descripción de
TiposVia.csvsi se aporta (p.ej.KALE → KALEA), o el propio código en su defecto.
- si ya existe en tu tabla de tipos (comparando el código sin espacios),
reutiliza su
-
Vías. Cachea en memoria los municipios (
CPRO|CMUN → id) y las vías existentes por su clave natural (municipio_id|codigo) con una firma de sus campos. Después recorre el fichero:- vía existente y sin cambios → no hace nada;
- vía existente con cambios →
UPDATEde esa fila (mismoid); - vía nueva →
INSERT(por lotes).
Las vías que están en tu base de datos pero ya no aparecen en el censo se dejan intactas (no se borran).
⚠️ Requisitos: tablas que tu aplicación debe tener
Este paquete NO crea ni migra ninguna tabla. Se limita a rellenar tablas que ya deben existir en tu aplicación. Necesita cuatro:
| Tabla | Uso del paquete | Para qué |
|---|---|---|
tiposdevias |
lectura + escritura | Tipos de vía (destino). |
vias |
lectura + escritura | Vías (destino). |
municipios |
solo lectura | Resolver municipio_id a partir de CPRO+CMUN. |
provincias |
solo lectura | Enlazar el CPRO del fichero con el municipio. |
Todos los nombres de tabla y de columna son configurables en
config/censo-vias.php; abajo se documenta el esquema por defecto.
tiposdevias (destino)
Clave natural: la columna codigo1.
| Columna | Tipo | Notas |
|---|---|---|
id |
bigint unsigned PK | Autoincremental. Se conserva en filas existentes. |
codigo1 |
varchar(5) | Código del tipo de vía (TVIA), p.ej. CALLE, KALE. |
codigo2 |
varchar(2) | Código legado de 2 letras. En altas se rellena con el valor extra_defaults (XX por defecto). |
nombre |
varchar(50) | Descripción del tipo (de TiposVia.csv). |
created_at |
timestamp nullable | Solo si tipos.timestamps = true. |
updated_at |
timestamp nullable | " |
vias (destino)
Clave natural: municipio_id + codigo.
| Columna | Tipo | Notas |
|---|---|---|
id |
bigint unsigned PK | Autoincremental. Se conserva en filas existentes. |
municipio_id |
bigint unsigned | FK → municipios.id. Resuelto de CPRO+CMUN. |
codigo |
varchar(5) | Código de vía (CVIA), p.ej. 01001. |
tipodevia_id |
bigint unsigned | FK → tiposdevias.id. |
posiciontvia |
tinyint | En altas se rellena con extra_defaults (0). |
nombre |
varchar(50) | Nombre de la vía (NVIA). |
nombrecorto |
varchar(25) | Nombre corto (NVIAC). |
created_at |
timestamp nullable | Solo si vias.timestamps = true. |
updated_at |
timestamp nullable | " |
municipios y provincias (solo lectura)
El paquete solo lee las columnas necesarias para resolver el municipio:
provincias:id,codigovarchar(2) (=CPRO, p.ej.01).municipios:id,codigovarchar(3) (=CMUN, p.ej.001) y la FK a la provincia (provincia_id).
El callejero del censo no incluye el nombre del municipio ni de la provincia, así que esas tablas debes poblarlas por otra vía (la lista oficial de municipios del INE). Este paquete no las modifica.
Migraciones de ejemplo
Si partes de una aplicación sin estas tablas, estas migraciones crean el esquema por defecto:
Instalación
El service provider se registra solo (package discovery); no hay que añadir
nada más al composer.json.
Si el paquete aún no está en Packagist y lo instalas directamente desde su repositorio git, añade antes el repositorio a tu
composer.json:
Configuración
La config se fusiona automáticamente (config('censo-vias.*') funciona sin
publicar nada). Publícala solo si necesitas adaptar nombres de tabla/columna:
En config/censo-vias.php defines: codificación, posiciones de los campos del
fichero VIAS, mapeo de columnas de tiposdevias y vias, y cómo resolver el
municipio a partir de provincias + municipios.
Uso
| Opción | Descripción |
|---|---|
--tipos= |
Ruta a TiposVia.csv (descripciones de los tipos). |
--chunk=2000 |
Nº de vías por lote de inserción. |
--update-names |
Actualiza también el nombre de los tipos ya existentes. |
--dry |
No escribe nada; solo informa de lo que haría. |
Ejemplo
Salida:
Sin municipio cuenta las vías cuyo CPRO|CMUN no existe en tu tabla
municipios (códigos especiales del INE); se informan y se omiten.
Notas sobre el formato del INE
- Los ficheros vienen en ISO-8859-1; cada campo se convierte a UTF-8.
- Del fichero
VIASse leen los campos del bloque de situación actual (posiciones 48–132):CVIA,TVIA,NVIA,NVIAC. - La ruta del fichero es un argumento: puede ser absoluta o relativa a la
raíz de la aplicación (donde ejecutas
php artisan).
Licencia
MIT © Alberto Lago Rodríguez (Informática dos Lago).
All versions of censo-vias with dependencies
ext-mbstring Version *
illuminate/console Version ^10.0|^11.0|^12.0|^13.0
illuminate/support Version ^10.0|^11.0|^12.0|^13.0
illuminate/database Version ^10.0|^11.0|^12.0|^13.0