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

Eksporter en hel SQLite-database til en SQL-fil

SQLite-kommandolinjen giver flere metoder til at eksportere eller sikkerhedskopiere en hel database. En af dem involverer .dump punktkommando.

.dump kommandoen giver dig mulighed for at konvertere en hel database til en enkelt ASCII-tekstfil. Med andre ord gengiver den hele databasen som SQL. Tekstfilen indeholder alle de SQL-sætninger, der kræves for at oprette tabellerne, indsætte data osv.

Du kan også bruge .dump for at oprette en komprimeret fil. Jeg skitserer begge disse metoder nedenfor.

Eksporter som SQL

Du kan bruge .dump i forbindelse med .output eller .once at eksportere hele databasen til en .sql-fil.

Denne fil vil indeholde alle de SQL-sætninger, der kræves for at rekonstruere databasen (inklusive oprettelse af alle tabeller, indsættelse af alle data osv.).

Her er et eksempel:

.once Store.sql
.dump

I dette tilfælde brugte jeg .once kommando. Dette dirigerer blot resultaterne af den næste kommando eller SQL-sætning ind i den angivne fil.

I dette tilfælde er den næste kommando .dump dot-kommando, som som standard gengiver alt databaseindhold som SQL.

Du kan alternativt bruge .output , men dette vil lede resultaterne af alle fremtidige kommandoer/SQL-sætninger ind i filen. Dette kan få utilsigtede konsekvenser, hvis du ikke er forsigtig.

Gendan databasen

Når du har oprettet .sql backup-filen, kan du rekonstruere hele databasen ved blot at læse den fil inde fra SQLite.

For eksempel kan du oprette forbindelse til SQLite, mens du angiver en ny databasefil (en, der ikke allerede eksisterer):

sqlite3 Store2.db

Ved at angive en databasefil, der ikke eksisterer, vil SQLite oprette en tom database.

Nu hvor du er i SQLite, kan du læse indholdet af backupfilen:

.read Store.sql

Det er alt, hvad der er til det. Databasen er blevet rekonstrueret fra .sql-filen. Alle tabeller er blevet oprettet, og alle data er blevet indsat.

Opret en komprimeret fil

Hvis din database er stor og indeholder en masse data, kan du være bedre stillet til at oprette en komprimeret backup-fil.

Her er et eksempel:

sqlite3 Store .dump | gzip -c >Store.dump.gz

Bemærk, at dette køres uden for SQLite. Med andre ord oprettede jeg ikke forbindelse til SQLite, før jeg kørte denne kommando. Jeg åbnede simpelthen et nyt terminalvindue og kørte den kommando.

Faktisk navigerede jeg til backup-mappen først. Hvis du ikke gør dette, skal du inkludere stien i backupfilen.

Du kan rekonstruere databasen med zcat . zcat værktøj giver dig mulighed for at se indholdet af en komprimeret fil uden faktisk at komprimere den.

Så filen oprettet i det tidligere eksempel kunne rekonstrueres ved hjælp af zcat værktøj.

zcat Store.dump.gz | sqlite3 Store2

Dette fungerer muligvis eller ikke, afhængigt af dit system. Hvis dette ikke virker, skal du muligvis bruge et andet komprimeringsværktøj.


  1. Arbejde med Salesforce.com-data i SQL Server Reporting Services

  2. MariaDB DAG() Forklaret

  3. 3 måder at returnere antallet af rækker i hver partition i SQL Server (T-SQL)

  4. Oracle 10g - optimer WHERE IS NOT NULL