Como fazer backup de um banco de dados SQLite em um arquivo.
Existem várias maneiras de fazer backup de um banco de dados SQLite para arquivo.
- Use o
.backup
comando. - Use o
.clone
comando. - Use o
.dump
comando. - Copie o arquivo no sistema de arquivos.
O .backup
Comando
Este comando faz backup de um banco de dados em um arquivo. Ele aceita um alias de banco de dados (ou seja, o banco de dados para backup) e um nome de arquivo (para o arquivo de backup).
Se você omitir o alias do banco de dados, ele usará o
main
base de dados. Aqui está um exemplo:
.backup mybackup.db
Isso criará um arquivo chamado backup.db contendo um backup do banco de dados. Você pode anexar isso de volta ao shell de linha de comando SQLite3 se necessário (depois faça um
.databases
para visualizar a lista de conexões de banco de dados):sqlite> ANEXAR DATABASE 'mybackup.db' AS MyBackup;sqlite> .databasesseq nome do arquivo --- --------------- ----------- -----------------------------------------------0 principal / Users/quackit/sqlite/music.db 1 temp 2 MyBackup /Users/quackit/sqlite/mybackup.db
Na prática, você provavelmente faria backup do banco de dados em um local diferente. Portanto, você forneceria o caminho completo do arquivo no
.backup
comando. Por exemplo, .backup /remote/folder/mybackup.db
O .clone
Comando
O
.clone
comando é semelhante ao .backup
comando. No entanto, .clone
usa apenas o banco de dados atual, portanto, você não pode especificar outro banco de dados para clonar. Para clonar o banco de dados atual, digite
.clone
seguido pelo nome do arquivo de banco de dados para os dados clonados. Assim:
.clone meuclone.db
Executando assim:
sqlite> .clone myclone.dbArtists... doneAlbums... doneAlbums2... doneCatalog... doneGenres... done
Você pode anexar o banco de dados clonado como o outro:
sqlite> ANEXAR DATABASE 'myclone.db' AS MyClone;sqlite> .databasesseq nome do arquivo --- --------------- ----------- -----------------------------------------------0 principal / Users/quackit/sqlite/music.db 1 temp 2 MyBackup /Users/quackit/sqlite/mybackup.db 3 MyClone /Users/quackit/sqlite/myclone.db
O .dump
Comando
Você pode usar o
.dump
comando para despejar o banco de dados em um arquivo ASCII. Por exemplo, você pode despejá-lo em um arquivo .sql que contém as instruções SQL para gerar o banco de dados. Descarregue o banco de dados inteiro
Este exemplo despeja o arquivo music.db arquivo para music.sql .
sqlite3 music.db .dump> music.sql
Conteúdo de music.sql (rolagem obrigatória):
PRAGMA estrangeira_keys=OFF;INICIAR TRANSAÇÃO;CRIAR TABELA Artistas( 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 " Artistas" 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','Banda de jazz australiana centrada em polirritmias.');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 );INSERIR VALORES DE "Álbuns"(8,'Pork Soda','1993',13);INSERIR VALORES DE "Álbuns"(9,'Navegando nos Mares de Queijo','1991',13);INSERIR EM " Álbuns" 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 " Álbuns2" VALUES(2,'Powerslave',7);INSERT INTO "Albums2" VALUES(3,'Surfing with the Alien',1);INSERT INTO "A lbums2" 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,'Navegando 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','Voando em um sonho azul','Joe Satriani');INSERT INTO "Catálogo" VALORES('11',' Cisnes Negros e Feiticeiros de Wormhole','Joe Satriani');INSERIR VALORES "Catalog"('6','Fora do Loop','Mr Percival');INSERIR VALORES "Catalog"('7','Suck on This','Primus');INSERT INTO "Catalog" VALUES('8','Pork Soda','Primus');INSERT INTO "Catalog" VALUES('9','Navegando nos mares de queijo',' Primus'); CREATE TABLE Genres( GenreId INTEGER PRIMARY KEY, Gênero TEXT NOT NULL);INSERT INTO "Genres" VALUES(1,'Rock');INSERT INTO "Genres" VALUES(2,'Country');INSERT INTO " Gêneros" VALUES(3,'Pop');INSERIR EM "Gêneros" VALUES(4,'Comédia');INSERIR EM "Gêneros" VALUES(5,'Jazz');INSERIR EM "Gêneros" VALUES(6,'Blues ');INSERIR EM "Gêneros" VALORES(7,'Techno');COMMIT;
Copiar o arquivo
Os métodos acima permitem fazer backup de um banco de dados a partir do shell de linha de comando SQLite3.
Você também pode fazer backup de um banco de dados simplesmente copiando/colando o arquivo físico no sistema de arquivos.
Se você não tiver certeza da localização do arquivo físico, poderá usar o
.databases
comando para encontrar a localização:sqlite> arquivo de nome .databasesseq --- --------------- ----------------------- -----------------------------------0 main /Users/quackit/sqlite/music.db 1 temp
Então, armado com o conhecimento acima, agora posso navegar até o /Users/quackit/sqlite/ diretório, copie o music.db arquivo e cole-o em um local seguro.