tai-sql feed¶
Ejecuta los métodos feed() de las tablas, en orden topológico por claves
foráneas y en una sola transacción: si falla una tabla, no queda aplicada ninguna.
Las opciones¶
| Opción | Qué hace |
|---|---|
-t, --table |
Alimenta solo esa tabla |
--clean |
Vacía las tablas antes de alimentarlas, con la sentencia de cada motor |
-d, --dry-run |
Muestra qué se insertaría sin ejecutar |
-f, --force |
Ejecuta aunque haya cambios pendientes o tablas sin clave de conflicto |
--continue-on-error |
Sigue con las demás tablas si una falla, en vez de deshacer el feed |
-v, --verbose |
Detalle de cada paso |
--clean borra más de lo que parece
Vacía las tablas indicadas y las que dependan de ellas. No es «volver al estado inicial»: es borrar datos.
Idempotencia: la clave natural¶
El feed hace upsert usando la clave natural de la tabla, que es una unique_constraint.
Una tabla sin ninguna, con clave primaria autoincremental, no tiene clave de conflicto: cada ejecución insertaría las mismas filas otra vez. El plan lo decide antes de ejecutar y, si alguna tabla no tiene identidad, corta con un error que dice cómo dársela.
class Rol(Table):
__tablename__ = 'rol'
__constraints__ = unique_constraint('nombre', 'tenant_id') # ← esto
--force salta esa comprobación. Es lo que quieres en una tabla de log, y lo que no quieres en
ninguna otra.
Qué no hace¶
- No codifica vectores: una columna vectorial con encoder y sin valor es un error con su solución. Codificar es trabajo del cliente generado, en runtime.
- No ejecuta los triggers del cliente generado: el feed inserta contra la base de datos.
Dentro de un push¶
Ejecuta el feed entre la creación de las tablas y la aplicación de las claves foráneas. Sirve cuando los datos iniciales son necesarios para que las FKs se puedan aplicar sin filas huérfanas.