SQLite
Recolección SQLITE y Entrega SQLITE_EXEC. A diferencia de las otras tres, no hay servidor: la
conexión es la ruta de un archivo.
Conexión
No hay host, puerto ni usuario — la conexión es la ruta del .db tal como la ve el servidor del CMS
(en contenedor, dentro de un volumen montado). El control de acceso es el del filesystem, y por eso
este es el único de los cuatro tipos sin ningún campo de contraseña.
Opciones propias de la conexión:
| Opción | Para qué sirve |
|---|---|
| Solo lectura | Abre la base sin permiso de escritura. Una Entrega (o comando posterior a la recolección) en esa conexión falla en vez de grabar — úselo cuando otro sistema es el dueño del archivo |
| Crear archivo si no existe | Desactivado, una ruta inexistente es un error. Activado, el CMS crea la base — úselo solo cuando él es el dueño |
| Modo WAL | Apagado por defecto. Permite lectores simultáneos a un escritor. Queda guardado en el propio archivo y vale para los otros procesos que lo abran — incluso después de que usted apague la opción aquí |
| Tiempo de espera del bloqueo | Cuánto espera una ejecución por la liberación de la escritura antes de fallar con database is locked |
SQLite acepta un escritor a la vez en todo el archivo (no por fila ni por tabla). Recolecciones
y Entregas frecuentes en el mismo .db, o un proceso externo grabando en paralelo, compiten por
ese bloqueo — dimensione el tiempo de espera y considere el WAL. Evite un .db en un recurso
compartido de red (SMB/NFS): el bloqueo depende de garantías que esos sistemas de archivos no
ofrecen.
El WAL es opt-in explícito, no el predeterminado. Exige memoria compartida — un archivo -shm
mapeado — que los recursos compartidos de red, algunos sistemas de archivos de contenedor y
volúmenes montados desde afuera no ofrecen. Encendido en un medio así, la base falla con un error
de E/S crudo del driver, que no ayuda a nadie a entender qué pasó. Por eso el predeterminado es el
modo tradicional, y cuando el error ocurre el CMS lo traduce, diciendo que el WAL es el
sospechoso y dónde apagarlo.
Como toda base es un archivo, los comandos que alcanzan otros archivos o el propio motor —
ATTACH, VACUUM INTO, PRAGMA, load_extension — están bloqueados en los campos de
Recolección y Entrega, junto al DDL/DCL ya vedado en los otros dialectos.
Vocabulario bloqueado en este dialecto
Además del DDL/DCL vedado en todos los dialectos, este bloquea:
ATTACH, DETACH, PRAGMA, VACUUM, REINDEX, LOAD_EXTENSION, READFILE, WRITEFILE
La verificación completa — verbo inicial, statements encadenados y la neutralización de comentarios y literales — está en lo que el CMS bloquea en los campos SQL.
El comportamiento común a las cuatro bases — modos de resultado, marcado de lo ya leído y marcadores — está en Bases de datos.