Как да архивирам база данни на SQLite във файл.
Има няколко начина за архивиране на база данни на SQLite във файл.
- Използвайте
.backup
команда. - Използвайте
.clone
команда. - Използвайте
.dump
команда. - Копирайте файла във файловата система.
.backup
Команда
Тази команда архивира база данни във файл. Той приема псевдоним на база данни (т.е. базата данни за архивиране) и име на файл (за архивния файл).
Ако пропуснете псевдонима на базата данни, той ще използва main
база данни.
Ето един пример:
.backup mybackup.db
Това ще създаде файл, наречен
backup.db
съдържаща резервно копие на базата данни. Можете да прикачите това обратно към обвивката на командния ред на SQLite3, ако е необходимо (след това направете .databases
за да видите списъка с връзки към базата данни):
sqlite> ПРИКАЧЕТЕ БАЗА ДАННИ 'mybackup.db' КАТО MyBackup;sqlite> .databasesseq файл с име --- --------------- ----------- -----------------------------------------------0 main / Users/quackit/sqlite/music.db 1 temp 2 MyBackup /Users/quackit/sqlite/mybackup.db
На практика вероятно бихте архивирали базата данни на друго място. Следователно, вие бихте предоставили пълния път на файла в .backup
команда. Например .backup /remote/folder/mybackup.db
.clone
Команда
.clone
командата е подобна на .backup
команда. Въпреки това, .clone
използва само текущата база данни, така че не можете да посочите друга база данни за клониране.
За да клонирате текущата база данни, въведете .clone
последвано от името на файла на базата данни за клонираните данни.
Като това:
.clone myclone.db
Изпълнението изглежда така:
sqlite> .clone myclone.dbArtists... doneAlbums... doneAlbums2... doneCatalog... doneGanres... done
Можете да прикачите клонираната база данни точно като другата:
sqlite> ПРИКАЧЕТЕ БАЗА ДАННИ 'myclone.db' КАТО MyClone;sqlite> .databasesseq файл с име --- --------------- ----------- -----------------------------------------------0 main / Users/quackit/sqlite/music.db 1 temp 2 MyBackup /Users/quackit/sqlite/mybackup.db 3 MyClone /Users/quackit/sqlite/myclone.db
.dump
Команда
Можете да използвате .dump
команда за изхвърляне на базата данни в ASCII файл. Например, можете да го изхвърлите в .sql файл, който съдържа SQL изразите, от които да генерирате базата данни.
Изхвърлете цялата DB
Този пример изхвърля music.db файл в music.sql .
sqlite3 music.db .dump> music.sql
Съдържание на music.sql (изисква се превъртане):
PRAGMA external_keys=ИЗКЛЮЧЕНО;ЗАПОЧНЕТЕ ТРАНЗАКЦИЯ;СЪЗДАВАНЕ НА ТАБЛИЦА Изпълнители( ArtistId INTEGER PRIMARY KEY, ArtistName TEXT NOT NULL, Bio TEXT);INSERT IN TO "Artiists" VALUES(1,'Joe Satriani',NULL);INSERT INTO "Artists " VALUES(2,'Steve Vai',NULL);ВМЕСЕТЕ В СТОЙНОСТИТЕ "Артисти"(3,'The Tea Party',NULL);ВЪВЕТЕ В СТОЙНОСТИ "Артисти"(4,'Noiseworks',NULL);ВМЕСЕТЕ В " Artists" VALUES(5,'Wayne Jury',NULL);INSERT INTO "Artists" VALUES(6,'Mr Percival',NULL);INSERT INTO "Artists" VALUES(7,'Iron Maiden',NULL);INSERT INTO "Артисти" СТОЙНОСТИ(8,'Atmasphere','Австралийска джаз банда, съсредоточена около полиритми.');ВЪВЕТЕ ВЪВ СТОЙНОСТИТЕ "Артисти"(9,'Ian Moss',NULL);ВМЕСЕТЕ В СТОЙНОСТИТЕ "Артисти"(10,'Magnum ',NULL);ВМЕСЕТЕ В СТОЙНОСТИТЕ "Изпълнители"(13,'Primus',NULL);ВЪВЕТЕ В СТОЙНОСТИТЕ "Изпълнители"(14,'Pat Metheny',NULL);ВМЕСЕТЕ В СТОЙНОСТИТЕ "Артисти"(15,'Frank Gambale ',NULL);ВМЕСЕТЕ В СТОЙНОСТИТЕ "Изпълнители"(16,'Mothers of Invention',NULL);СЪЗДАВАЙТЕ ТАБЛИЦА Албуми( AlbumId INTEGER PRIMARY KEY, AlbumName TEXT NOT NULL, ReleaseDate TEXT, ArtistId INTEGER NOT NULL, FOREIGN KEY(ArtistId) РЕФЕРЕНЦИИ Изпълнители(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" STOS(8,'Pork Soda','1993',13);INSERT INTO "Albums" VALUES(9,'Sailing the Seas of Cheese','1991',13);INSERT INTO " Албуми" 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);СЪЗДАВАНЕ НА ТАБЛИЦА Albums2( AlbumId INT, AlbumName TEXT, ArtistId INT);INSERT INTO "Albums2" VALUES(1,'Killers',7);INSERT INTO " Албуми2" СТОЙНОСТИ(2,'Powerslave',7);ВМЕСЕТЕ ВЪВ "Albums2" СТОЙНОСТИ(3,'Сърфиране с извънземното',1);ВМЕСЕТЕ ВЪВ "A lbums2" VALUES(4,'Тежък като наистина тежко нещо',11);INSERT INTO "Albums2" VALUES(5,'Yummy Yummy',17);INSERT INTO "Albums2" VALUES(6,'Out of the Loop' ,6);ВМЕСЕТЕ В СТОЙНОСТИТЕ "Albums2"(7,'Suck on This',13);INSERT INTO "Albums2" STOS(8,'Pork Soda',13);INSERT INTO "Albums2" VALUES(9,'Sailing the Seas of Cheese',13);ВЪВЕТЕ ВЪВ СТОЙНОСТИ „Albums2“(10,„Flying in a Blue Dream“,1);INSERT В „Albums2“ STOS(11,„Black Swans and Wormhole Wizards“,1);INSERT INTO „Albums2“ STOS(12,'Somewhere in Time',7);INSERT INTO "Albums2" STOS(13,'Gig 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" STONS ('10','Летене в син сън','Джо Сатриани');ВМЕСЕТЕ В СТОЙНОСТИТЕ "Каталог"('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 на това','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 " Жанрове" СТОЙНОСТИ(3,'Поп');ВМЕСЕТЕ В СТОЙНОСТИТЕ "Жанрове"(4,'Комедия');ВМЕСЕТЕ В СТОЙНОСТИТЕ "Жанрове"(5,'Джаз');ВМЕСЕТЕ В СТОЙНОСТИТЕ "Жанрове"(6,'Блус) ');INSERT INTO "Ganres" VALUES(7,'Techno');COMMIT;
Копирайте файла
Горните методи ви позволяват да архивирате база данни от обвивката на командния ред на SQLite3.
Можете също да архивирате база данни, просто като копирате/поставите физическия файл във файловата система.
Ако не сте сигурни в местоположението на физическия файл, можете да използвате .databases
команда за намиране на местоположението:
sqlite> .databasesseq файл с име --- --------------- ----------------------- ----------------------------------0 main /Users/quackit/sqlite/music.db 1 temp предварително>Така въоръжен с горните знания, вече мога да се придвижа до /Users/quackit/sqlite/ директория, копирайте music.db файл и го поставете на безопасно място.