De SQLite-opdrachtregel biedt verschillende methoden voor het exporteren of back-uppen van een volledige database. Een daarvan betreft de .dump
dot-opdracht.
De .dump
opdracht stelt u in staat een hele database naar een enkel ASCII-tekstbestand te converteren. Met andere woorden, het geeft de hele database weer als SQL. Het tekstbestand bevat alle SQL-instructies die nodig zijn om de tabellen te maken, gegevens in te voegen, enz.
U kunt ook .dump
. gebruiken om een gecomprimeerd bestand te maken. Ik schets beide methoden hieronder.
Exporteren als SQL
U kunt .dump
. gebruiken in combinatie met .output
of .once
om de hele database naar een .sql-bestand te exporteren.
Dit bestand bevat alle SQL-instructies die nodig zijn om de database te reconstrueren (inclusief het maken van alle tabellen, het invoegen van alle gegevens, enz.).
Hier is een voorbeeld:
.once Store.sql
.dump
In dit geval gebruikte ik de .once
opdracht. Dit leidt eenvoudigweg de resultaten van de volgende opdracht of SQL-instructie naar het opgegeven bestand.
In dit geval is het volgende commando de .dump
dot-opdracht, die standaard alle database-inhoud als SQL weergeeft.
U kunt ook .output
. gebruiken , maar dit zal de resultaten van alle toekomstige commando's/SQL-instructies in het bestand. Dit kan onbedoelde gevolgen hebben als je niet voorzichtig bent.
De database herstellen
Nadat u het .sql-back-upbestand heeft gemaakt, kunt u de hele database reconstrueren door dat bestand eenvoudig vanuit SQLite te lezen.
U kunt bijvoorbeeld verbinding maken met SQLite terwijl u een nieuw databasebestand opgeeft (een bestand dat nog niet bestaat):
sqlite3 Store2.db
Door een databasebestand op te geven dat niet bestaat, maakt SQLite een lege database.
Nu u in SQLite bent, kunt u de inhoud van het back-upbestand lezen:
.read Store.sql
Dat is alles. De database is gereconstrueerd uit het .sql-bestand. Alle tabellen zijn gemaakt en alle gegevens zijn ingevoegd.
Maak een gecomprimeerd bestand
Als uw database groot is en veel gegevens bevat, kunt u beter een gecomprimeerd back-upbestand maken.
Hier is een voorbeeld:
sqlite3 Store .dump | gzip -c >Store.dump.gz
Merk op dat dit buiten SQLite wordt uitgevoerd. Met andere woorden, ik heb geen verbinding gemaakt met SQLite voordat ik deze opdracht uitvoerde. Ik opende gewoon een nieuw terminalvenster en voerde die opdracht uit.
Eigenlijk ben ik eerst naar de back-upmap genavigeerd. Als u dit niet doet, moet u het pad in het back-upbestand opnemen.
U kunt de database reconstrueren met zcat . De zcat hulpprogramma stelt u in staat om de inhoud van een gecomprimeerd bestand te bekijken zonder het daadwerkelijk te decomprimeren.
Het bestand dat in het eerdere voorbeeld is gemaakt, kan dus worden gereconstrueerd met behulp van de zcat hulpprogramma.
zcat Store.dump.gz | sqlite3 Store2
Dit kan wel of niet werken, afhankelijk van uw systeem. Als dit niet werkt, moet u mogelijk een ander compressieprogramma gebruiken.