SQLite
 sql >> Baza danych >  >> RDS >> SQLite

SQLite - Utwórz kopię zapasową bazy danych do pliku

Jak wykonać kopię zapasową bazy danych SQLite do pliku.

Istnieje kilka sposobów tworzenia kopii zapasowej bazy danych SQLite do pliku.

  • Użyj .backup polecenie.
  • Użyj .clone polecenie.
  • Użyj .dump polecenie.
  • Skopiuj plik do systemu plików.

.backup Polecenie

To polecenie tworzy kopię zapasową bazy danych do pliku. Akceptuje alias bazy danych (tj. Baza danych do kopii zapasowej) i nazwę pliku (dla pliku kopii zapasowej).

Jeśli pominiesz alias bazy danych, użyje on main baza danych.

Oto przykład:

.backup mybackup.db

Spowoduje to utworzenie pliku o nazwie backup.db zawierający kopię zapasową bazy danych. W razie potrzeby możesz dołączyć to z powrotem do powłoki wiersza poleceń SQLite3 (następnie wykonaj .databases aby wyświetlić listę połączeń z bazą danych):

sqlite> ATTACH DATABASE 'mybackup.db' AS MyBackup;
sqlite> .databases
seq  name             file                                                      
---  ---------------  ----------------------------------------------------------
0    main             /Users/quackit/sqlite/music.db                            
1    temp                                                                       
2    MyBackup         /Users/quackit/sqlite/mybackup.db    

W praktyce prawdopodobnie wykonałbyś kopię zapasową bazy danych w innej lokalizacji. Dlatego powinieneś podać pełną ścieżkę do pliku w .backup Komenda. Na przykład .backup /remote/folder/mybackup.db

.clone Polecenie

.clone polecenie jest podobne do .backup Komenda. Jednak .clone używa tylko bieżącej bazy danych, więc nie możesz określić innej bazy danych do sklonowania.

Aby sklonować bieżącą bazę danych, wpisz .clone po którym następuje nazwa pliku bazy danych dla sklonowanych danych.

Tak:

.clone myclone.db

Bieganie wygląda tak:

sqlite> .clone myclone.db
Artists... done
Albums... done
Albums2... done
Catalog... done
Genres... done

Możesz dołączyć sklonowaną bazę danych tak samo jak drugą:

sqlite> ATTACH DATABASE 'myclone.db' AS MyClone;
sqlite> .databases
seq  name             file                                                      
---  ---------------  ----------------------------------------------------------
0    main             /Users/quackit/sqlite/music.db                            
1    temp                                                                       
2    MyBackup         /Users/quackit/sqlite/mybackup.db                         
3    MyClone          /Users/quackit/sqlite/myclone.db      

.dump Polecenie

Możesz użyć .dump polecenie, aby zrzucić bazę danych do pliku ASCII. Na przykład możesz zrzucić go do pliku .sql, który zawiera instrukcje SQL, z których ma zostać wygenerowana baza danych.

Zrzuć całą bazę danych

Ten przykład zrzuca plik music.db plik do music.sql .

sqlite3 music.db .dump > music.sql

Zawartość music.sql (wymagane przewijanie):

PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE Artists(
  ArtistId    INTEGER PRIMARY KEY, 
  ArtistName  TEXT NOT NULL
, Bio TEXT);
INSERT INTO "Artists" VALUES(1,'Joe Satriani',NULL);
INSERT INTO "Artists" VALUES(2,'Steve Vai',NULL);
INSERT INTO "Artists" VALUES(3,'The Tea Party',NULL);
INSERT INTO "Artists" VALUES(4,'Noiseworks',NULL);
INSERT INTO "Artists" VALUES(5,'Wayne Jury',NULL);
INSERT INTO "Artists" VALUES(6,'Mr Percival',NULL);
INSERT INTO "Artists" VALUES(7,'Iron Maiden',NULL);
INSERT INTO "Artists" VALUES(8,'Atmasphere','Australian jazz band centred around polyrhythms.');
INSERT INTO "Artists" VALUES(9,'Ian Moss',NULL);
INSERT INTO "Artists" VALUES(10,'Magnum',NULL);
INSERT INTO "Artists" VALUES(13,'Primus',NULL);
INSERT INTO "Artists" VALUES(14,'Pat Metheny',NULL);
INSERT INTO "Artists" VALUES(15,'Frank Gambale',NULL);
INSERT INTO "Artists" VALUES(16,'Mothers of Invention',NULL);
CREATE TABLE Albums(
  AlbumId     INTEGER PRIMARY KEY, 
  AlbumName   TEXT NOT NULL,
  ReleaseDate TEXT,
  ArtistId INTEGER NOT NULL,
  FOREIGN KEY(ArtistId) REFERENCES Artists(ArtistId)
);
INSERT INTO "Albums" VALUES(1,'Killers','1981',7);
INSERT INTO "Albums" VALUES(2,'Powerslave','1984',7);
INSERT INTO "Albums" VALUES(3,'Surfing with the Alien','1987',1);
INSERT INTO "Albums" VALUES(4,'Heavy as a Really Heavy Thing','1995',11);
INSERT INTO "Albums" VALUES(6,'Out of the Loop','2007',6);
INSERT INTO "Albums" VALUES(7,'Suck on This','1989',13);
INSERT INTO "Albums" VALUES(8,'Pork Soda','1993',13);
INSERT INTO "Albums" VALUES(9,'Sailing the Seas of Cheese','1991',13);
INSERT INTO "Albums" VALUES(10,'Flying in a Blue Dream','1989',1);
INSERT INTO "Albums" VALUES(11,'Black Swans and Wormhole Wizards','2010',1);
INSERT INTO "Albums" VALUES(12,'Somewhere in Time','1986',7);
CREATE TABLE Albums2(
  AlbumId INT,
  AlbumName TEXT,
  ArtistId INT
);
INSERT INTO "Albums2" VALUES(1,'Killers',7);
INSERT INTO "Albums2" VALUES(2,'Powerslave',7);
INSERT INTO "Albums2" VALUES(3,'Surfing with the Alien',1);
INSERT INTO "Albums2" VALUES(4,'Heavy as a Really Heavy Thing',11);
INSERT INTO "Albums2" VALUES(5,'Yummy Yummy',17);
INSERT INTO "Albums2" VALUES(6,'Out of the Loop',6);
INSERT INTO "Albums2" VALUES(7,'Suck on This',13);
INSERT INTO "Albums2" VALUES(8,'Pork Soda',13);
INSERT INTO "Albums2" VALUES(9,'Sailing the Seas of Cheese',13);
INSERT INTO "Albums2" VALUES(10,'Flying in a Blue Dream',1);
INSERT INTO "Albums2" VALUES(11,'Black Swans and Wormhole Wizards',1);
INSERT INTO "Albums2" VALUES(12,'Somewhere in Time',7);
INSERT INTO "Albums2" VALUES(13,'Big Red Car',17);
CREATE TABLE Catalog(
  "AlbumId" TEXT,
  "AlbumName" TEXT,
  "ArtistName" TEXT
);
INSERT INTO "Catalog" VALUES('1','Killers','Iron Maiden');
INSERT INTO "Catalog" VALUES('2','Powerslave','Iron Maiden');
INSERT INTO "Catalog" VALUES('12','Somewhere in Time','Iron Maiden');
INSERT INTO "Catalog" VALUES('3','Surfing with the Alien','Joe Satriani');
INSERT INTO "Catalog" VALUES('10','Flying in a Blue Dream','Joe Satriani');
INSERT INTO "Catalog" VALUES('11','Black Swans and Wormhole Wizards','Joe Satriani');
INSERT INTO "Catalog" VALUES('6','Out of the Loop','Mr Percival');
INSERT INTO "Catalog" VALUES('7','Suck on This','Primus');
INSERT INTO "Catalog" VALUES('8','Pork Soda','Primus');
INSERT INTO "Catalog" VALUES('9','Sailing the Seas of Cheese','Primus');
CREATE TABLE Genres(
  GenreId    INTEGER PRIMARY KEY, 
  Genre      TEXT NOT NULL
);
INSERT INTO "Genres" VALUES(1,'Rock');
INSERT INTO "Genres" VALUES(2,'Country');
INSERT INTO "Genres" VALUES(3,'Pop');
INSERT INTO "Genres" VALUES(4,'Comedy');
INSERT INTO "Genres" VALUES(5,'Jazz');
INSERT INTO "Genres" VALUES(6,'Blues');
INSERT INTO "Genres" VALUES(7,'Techno');
COMMIT;

Skopiuj plik

Powyższe metody umożliwiają wykonanie kopii zapasowej bazy danych z poziomu powłoki wiersza poleceń SQLite3.

Możesz także wykonać kopię zapasową bazy danych, po prostu kopiując/wklejając fizyczny plik do systemu plików.

Jeśli nie masz pewności co do lokalizacji fizycznego pliku, możesz użyć .databases polecenie, aby znaleźć lokalizację:

sqlite> .databases
seq  name             file                                                      
---  ---------------  ----------------------------------------------------------
0    main             /Users/quackit/sqlite/music.db                            
1    temp                                                                

Uzbrojony w powyższą wiedzę, mogę teraz przejść do /Users/quackit/sqlite/ katalogu, skopiuj music.db plik i wklej go w bezpieczne miejsce.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak działa SQLite Ifnull()

  2. Utwórz jednostkę pokoju dla tabeli, która ma pole z typem danych LONG w Sqlite

  3. Wyświetl dane SQLite w RecyclerView

  4. Jak mogę dodać nowe kolumny do bazy danych SQLite po wydaniu aplikacji na Androida?

  5. SQLite Node.js