sql >> Databasteknik >  >> RDS >> SQLite

Exportera en hel SQLite-databas till en SQL-fil

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.


  1. Beräkna löpande total med OVER-klausul och PARTITION BY-klausul i SQL Server

  2. Hur man konfigurerar SELinux för PostgreSQL och TimescaleDB

  3. skillnaden mellan ON-klausul och att använda klausul i sql

  4. INST_TOP (Oracle R12 INSTANCE_HOME ) avkodad