Kommandoraden i SQLite tillhandahåller flera metoder för att exportera eller säkerhetskopiera en hel databas. En av dessa involverar .dump
punktkommando.
.dump
kommandot låter dig konvertera en hel databas till en enda ASCII-textfil. Med andra ord, den renderar hela databasen som SQL. Textfilen innehåller alla SQL-satser som krävs för att skapa tabellerna, infoga data etc.
Du kan också använda .dump
för att skapa en komprimerad fil. Jag beskriver båda dessa metoder nedan.
Exportera som SQL
Du kan använda .dump
i kombination med .output
eller .once
för att exportera hela databasen till en .sql-fil.
Den här filen kommer att innehålla alla SQL-satser som krävs för att rekonstruera databasen (inklusive att skapa alla tabeller, infoga all data, etc).
Här är ett exempel:
.once Store.sql
.dump
I det här fallet använde jag .once
kommando. Detta leder helt enkelt resultatet av nästa kommando eller SQL-sats till den angivna filen.
I det här fallet är nästa kommando .dump
dot-kommandot, som som standard återger allt databasinnehåll som SQL.
Du kan alternativt använda .output
, men detta kommer att styra resultaten för alla framtida kommandon/SQL-satser i filen. Detta kan få oavsiktliga konsekvenser om du inte är försiktig.
Återställ databasen
När du har skapat .sql-backupfilen kan du rekonstruera hela databasen genom att helt enkelt läsa den filen inifrån SQLite.
Du kan till exempel ansluta till SQLite samtidigt som du anger en ny databasfil (en som inte redan finns):
sqlite3 Store2.db
Genom att ange en databasfil som inte existerar kommer SQLite att skapa en tom databas.
Nu när du är i SQLite kan du läsa innehållet i säkerhetskopian:
.read Store.sql
Det är allt som finns. Databasen har rekonstruerats från .sql-filen. Alla tabeller har skapats och all data har infogats.
Skapa en komprimerad fil
Om din databas är stor och innehåller mycket data kan det vara bättre att skapa en komprimerad säkerhetskopia.
Här är ett exempel:
sqlite3 Store .dump | gzip -c >Store.dump.gz
Observera att detta körs utanför SQLite. Med andra ord, jag anslöt inte till SQLite innan jag körde det här kommandot. Jag öppnade helt enkelt ett nytt terminalfönster och körde det kommandot.
Egentligen navigerade jag till säkerhetskopieringsmappen först. Om du inte gör detta måste du inkludera sökvägen i säkerhetskopian.
Du kan rekonstruera databasen med zcat . zcat verktyget låter dig se innehållet i en komprimerad fil utan att faktiskt komprimera den.
Så filen som skapades i det tidigare exemplet kunde rekonstrueras med hjälp av zcat verktyg.
zcat Store.dump.gz | sqlite3 Store2
Detta kan eller kanske inte fungerar beroende på ditt system. Om detta inte fungerar kan du behöva använda ett annat komprimeringsverktyg.