SQLite
 sql >> Database >  >> RDS >> SQLite

Esporta un intero database SQLite in un file SQL

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.