Skip to Content

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ónPara qué sirve
Solo lecturaAbre 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 existeDesactivado, una ruta inexistente es un error. Activado, el CMS crea la base — úselo solo cuando él es el dueño
Modo WALApagado 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 bloqueoCuá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.