Repository navigation
v0.3.0 — Esquema versionado y repo renombrado
Warning
Instalá v0.3.1, no esta versión.
El bloque «QUE FALTA» de deploy/install.sh imprime un comando que deja el known_hosts mal formado:
ssh-keyscan -p 22 -H <host> | sed 's/^/|1 h=|/'. Ese sed prefija cada línea y el archivo deja de ser válido,
así que el deploy falla con Host key verification failed — un mensaje que no señala la causa.
El resto de este release está bien y sigue siendo la base de v0.3.1; el defecto es sólo esa cadena.
→ https://github.com/cmp-camaguey/webcmp/releases/tag/v0.3.1
Esquema versionado
El esquema de la base de datos ahora vive en el repositorio. Hasta este release,
.gitignore excluía todo bajo migrations/ salvo __init__.py: un clone limpio
llegaba sin migraciones y el esquema se derivaba de los modelos en cada deploy,
sin diff que revisar. Un ALTER destructivo se aplicaba contra producción sin
pasar por una revisión, y revertir el código no lo deshacía.
Las 10 migraciones locales tampoco eran confiables: faltaba Notification en
core y había cinco campos corridos en commercial. Por eso se regeneraron
desde cero — un 0001_initial por app — en lugar de commitearlas.
El gate deja de ser cosmético: CI y los dos puntos de despliegue ejecutan
makemigrations --check --dry-run antes de migrate. Si un cambio de modelo
llega sin su migración, el proceso aborta antes de tocar la base.
Repositorio renombrado
El proyecto vive en cmp-camaguey/webcmp (antes web-cmw-insmet-cu). GitHub
redirige el nombre viejo, pero los links y los defaults se actualizaron:
UPDATE_REPO_URLyUPDATE_REPO_API, que usa el panel para comparar el commit
desplegado con el remoto.REPO_URLdel instalador y del despliegue automático, y las URLs crudas de
install.shen la documentación.- Los units systemd, que además apuntaban a la organización vieja
orl92.
Ningún archivo versionado conserva el nombre viejo, salvo el registro histórico
de odd/tasks/ y openspec/changes/archive/, donde el nombre es parte del
registro y no un link vivo.
Migraciones aplicadas
| App | Migración |
|---|---|
commercial |
0001_initial |
core |
0001_initial |
meteo |
0001_initial |
publications |
0001_initial |
user_auth |
0001_initial |
Verificación
migratesobre una base PostgreSQL vacía aplica las 5 apps + las de Django.migrate --checkymakemigrations --check --dry-runsalen 0.- Suite completa: 1562 tests, OK.
ruff check .,ruff format --check .ydjlint . --lintlimpios.deploy/tests/run.sh: 65 ok, 0 fallas.bash -nde los cuatro scripts, YAML parseable,git diff --checklimpio.
Instalación
Primero el plan, sin tocar nada:
curl -fsSL https://raw.githubusercontent.com/cmp-camaguey/webcmp/main/deploy/install.sh \
| sudo bash -s -- --dry-runDespués la corrida real, en una terminal interactiva:
curl -fsSL https://raw.githubusercontent.com/cmp-camaguey/webcmp/main/deploy/install.sh \
| sudo bash -sEl instalador clona el repo, crea el usuario de servicio y el de despliegue,
genera el .env, levanta el venv, aplica migraciones y estáticos, y deja las dos
unidades systemd, el vhost de Nginx y /etc/webcmp/deploy.env. Toma el mismo
lock que deploy.sh (/var/lock/webcmp-deploy.lock), así que no puede pisar un
deploy en curso.
Notas
deploy-production.ymlsigue deshabilitado (DEPLOY_ENABLEDsin definir):
fusionar enmainno despliega nada.deploy/install.shydeploy/deploy.shcambian de flujo y están cubiertos por
los 65 asserts de shell, pero el instalador todavía no se corrió en un host
real. Es el ítem abierto que arrastra #153.
Full Changelog: v0.2.0...v0.3.0