Comprobar una base de datos con verify
Traducción automática provisional, sin revisar. En caso de duda, consulte la versión en inglés, que es la versión de referencia.
kent verify compara la estructura de una base de datos con el esquema que
crearía esta compilación de Cordelia e informa de las diferencias.
Es de solo lectura y es el comando de diagnóstico: donde los demás rechazan una base que no pueden leer, este la abre igualmente y le dice por qué.
Sinopsis
kent verify <dbfilename>
Una base de datos que coincide
$ kent verify mydata.sqlite
Database: mydata.sqlite
No differences: every table this database has matches the schema this build creates.
$ echo $?
0
Una base de datos que no coincide
Cada diferencia es una línea, y el recuento se repite al final para que un informe largo siga siendo legible. Esta es una base escrita con el esquema 1, comprobada por una compilación que crea el esquema 2:
$ kent verify old.sqlite
Database: old.sqlite
difference: user_version: this build writes 2, the database reports 1
difference: Monitoring.intensity: the database says INTEGER, this build says REAL
difference: Monitoring.ascent: the database says INTEGER, this build says REAL
difference: Monitoring.descent: the database says INTEGER, this build says REAL
4 differences from the schema this build creates.
$ echo $?
1
Una columna que la base tiene y que Cordelia no crea se informa igual, que es lo que se ve si algo ajeno a Cordelia ha escrito en el archivo:
$ kent verify drifted.sqlite
Database: drifted.sqlite
difference: Session.my_extra_column: the database has this column, this build does not create it
1 difference from the schema this build creates.
$ echo $?
1
Lee una base de datos que los demás rechazan
info,
details,
files,
activities y
sports rechazan una base cuya
user_version sea más antigua de lo que espera esta compilación.
verify no, deliberadamente: una versión equivocada es el caso
que existe para diagnosticar, así que negarse a abrir el archivo lo haría inútil justo
cuando hace falta.
Lo que no comprueba
Compara estructura, no contenido: tablas, columnas y sus tipos declarados, más la versión del
esquema. No valida los datos de las filas ni comprueba que el propio formato de archivo de
SQLite esté intacto. Para eso, la herramienta correcta es
PRAGMA integrity_check de SQLite.
Además, solo informa de diferencias en tablas que la base tiene. Una tabla que Cordelia define y que esta base nunca creó no es un hallazgo, porque una base materializa solo lo que necesitaron sus datos importados. Eso es normal, y las bases deportivas publicadas son todas así: 14 tablas de las 128 que define el esquema.
Códigos de salida
0 cuando nada difiere, 1 cuando algo difiere. Eso lo hace utilizable
como prueba en un script, que es la razón por la que imprime un recuento además de las
líneas.
Véase también
- Informar sobre una base de datos con
info - Exportar una base de datos con
sqldump - Mensajes de error y códigos de salida
- Códigos de salida
- Informe completo con details
- Listar los archivos importados con files
- Listar las actividades con activities
- Listar los deportes con sports
- Bases de Datos de Ejemplo de Cordelia