sync_audio_bulk.sh: parada dura real en --carta + ruta absoluta
- carta_article_ids() en sync_audio_to_prod.py ahora comprueba returncode
del docker exec y lanza RuntimeError si falla, en vez de devolver una
lista vacía silenciosa (bug preexistente: un fallo de Docker/consulta se
confundía con "la carta no tiene artículos").
- El wrapper resuelve --carta a fichero temporal en vez de mapfile con
sustitución de procesos (mapfile < <(cmd) no deja comprobar el exit
code real de cmd), captura el rc de python explícitamente y aborta con
exit 1 sin sincronizar nada si la consulta falla.
- sys.path ya no depende del cwd ("scripts" relativo): se pasa la ruta
absoluta de SCRIPT_DIR al script inline.
Probado: --carta real sin cambios de comportamiento (28 candidatos,
ok=21/skip=7); consulta rota a propósito (FEA_DB_CONTAINER inexistente)
aborta limpio con exit=1 y 0 sincronizaciones; invocación desde otro
directorio de trabajo da el mismo resultado que desde la raíz del repo.
Revisión de Codix en el PR #215.
This commit is contained in:
@@ -86,6 +86,8 @@ def carta_article_ids(carta_id: int) -> list[int]:
|
||||
DB_NAME, "-N", "-e", q],
|
||||
capture_output=True, text=True, timeout=60,
|
||||
)
|
||||
if r.returncode != 0:
|
||||
raise RuntimeError(f"consulta de _carta_id={carta_id} falló (rc={r.returncode}): {r.stderr.strip()[:300]}")
|
||||
return [int(x) for x in r.stdout.split() if x.isdigit()]
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user