Analizzare un database con info

Traduzione automatica provvisoria, non revisionata. In caso di dubbio, consultare la versione inglese, che fa fede.

kent info riferisce cosa contiene un database Cordelia esistente: la sua versione dello schema, la versione dello schema che questa build di Kent si aspetta e il numero di righe di ogni tabella che contiene almeno una riga.

È di sola lettura. kent info apre il database e non vi scrive nulla.

Sintassi

kent info <dbfilename>

Vengono elencate solo le tabelle popolate

Un database Cordelia ha circa 129 tabelle, in gran parte vuote finché non si importano attività; elencarle tutte seppellirebbe quelle che contano. Usate kent details per vedere ogni tabella, comprese quelle vuote.

Le tabelle di riferimento e di lookup non ricevono un trattamento speciale. FileTypeLookup, FieldTypeLookup e le tabelle better_labels_* vengono precaricate alla creazione di un database, quindi contengono righe e sono elencate come qualsiasi altra tabella popolata. In un database creato da kent createdb e mai importato, quelle tabelle precaricate sono l'unica cosa che kent info riporta: è il comportamento atteso, non un difetto.

Vengono sempre mostrate due versioni dello schema

Entrambe vengono stampate perché possono legittimamente differire su un database che si apre correttamente:

Un database scritto da una Cordelia più recente si apre normalmente e dichiara la propria versione superiore. Un database scritto da una Cordelia più vecchia viene rifiutato del tutto (il livello di accesso ai dati di Cordelia lo respinge all'apertura, invece di lasciare che la discrepanza emerga più tardi sotto forma di righe illeggibili) quindi kent info stampa quel rifiuto ed esce con 1. Al momento non esiste alcun modo di migrare un database vecchio.

Un percorso inesistente non viene creato

Un percorso che non esiste viene segnalato come mancante e non viene creato. Questo conta perché la chiamata di apertura di SQLite crea da sé il file che le viene passato, quindi un percorso digitato male lascerebbe altrimenti in giro un database vuoto.

Esempi

Un database appena creato: solo le tabelle di riferimento precaricate contengono righe:

$ kent createdb mydata.sqlite
$ kent info mydata.sqlite
Database:                mydata.sqlite
Schema version:          2
Expected by this build:  2

Table                       Rows
-------------------------  -----
FieldTypeLookup                7
FileTypeLookup                20
better_labels_definitions   2811
better_labels_lookup       16866
-------------------------  -----
Total (4 tables)           19704

Un database più vecchio di quanto questa build comprenda:

$ kent info old.sqlite
kent info: failed to open database: This database uses an older schema and cannot be opened; version 2 is required. Create a new database and import your .FIT files again.
$ echo $?
1

Un percorso che non esiste:

$ kent info nope.sqlite
kent info: nope.sqlite does not exist
$ echo $?
1

Si veda anche Rapporto completo con details e Messaggi di errore e codici di uscita.

Vedi anche