La riga di comando di SQLite fornisce diversi metodi per l'esportazione o il backup di un intero database. Uno di questi riguarda il .dump
comando punto.
Il .dump
comando consente di convertire un intero database in un unico file di testo ASCII. In altre parole, rende l'intero database come SQL. Il file di testo contiene tutte le istruzioni SQL necessarie per creare le tabelle, inserire dati, ecc.
Puoi anche usare .dump
per creare un file compresso. Descrivo entrambi questi metodi di seguito.
Esporta come SQL
Puoi usare .dump
insieme a .output
o .once
per esportare l'intero database in un file .sql.
Questo file conterrà tutte le istruzioni SQL necessarie per ricostruire il database (inclusa la creazione di tutte le tabelle, l'inserimento di tutti i dati, ecc.).
Ecco un esempio:
.once Store.sql
.dump
In questo caso ho usato il .once
comando. Questo indirizza semplicemente i risultati del comando successivo o dell'istruzione SQL nel file specificato.
In questo caso, il comando successivo è .dump
dot comando, che per impostazione predefinita, esegue il rendering di tutto il contenuto del database come SQL.
In alternativa potresti usare .output
, ma questo indirizzerà i risultati di tutti comandi futuri/istruzioni SQL nel file. Ciò potrebbe avere conseguenze indesiderate se non stai attento.
Ripristina il database
Una volta creato il file di backup .sql, puoi ricostruire l'intero database semplicemente leggendo quel file da SQLite.
Ad esempio, puoi connetterti a SQLite specificando un nuovo file di database (uno che non esiste già):
sqlite3 Store2.db
Specificando un file di database che non esiste, SQLite creerà un database vuoto.
Ora che sei in SQLite, puoi leggere il contenuto del file di backup:
.read Store.sql
Questo è tutto ciò che c'è da fare. Il database è stato ricostruito dal file .sql. Tutte le tabelle sono state create e tutti i dati sono stati inseriti.
Crea un file compresso
Se il database è grande e contiene molti dati, è meglio creare un file di backup compresso.
Ecco un esempio:
sqlite3 Store .dump | gzip -c >Store.dump.gz
Nota che questo viene eseguito al di fuori di SQLite. In altre parole, non mi sono connesso a SQLite prima di eseguire questo comando. Ho semplicemente aperto una nuova finestra del terminale ed ho eseguito quel comando.
In realtà, sono passato prima alla cartella di backup. In caso contrario, dovrai includere il percorso nel file di backup.
Puoi ricostruire il database con zcat . Lo zcat l'utilità ti consente di visualizzare il contenuto di un file compresso senza decomprimerlo effettivamente.
Quindi il file creato nell'esempio precedente potrebbe essere ricostruito usando zcat utilità.
zcat Store.dump.gz | sqlite3 Store2
Questo potrebbe funzionare o meno a seconda del tuo sistema. Se non funziona, potrebbe essere necessario utilizzare un'utilità di compressione diversa.