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:
- Versione dello schema: quella che questo file di database memorizza.
- Attesa da questa build: quella che scrive la versione di Cordelia contro cui Kent è stato compilato.
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.