Comment sauvegarder une base de données SQLite dans un fichier.
Il existe plusieurs façons de sauvegarder une base de données SQLite dans un fichier.
- Utilisez le
.backup
commande. - Utiliser le
.clone
commande. - Utilisez le
.dump
commande. - Copiez le fichier sur le système de fichiers.
Le .backup
Commande
Cette commande sauvegarde une base de données dans un fichier. Il accepte un alias de base de données (c'est-à-dire la base de données à sauvegarder) et un nom de fichier (pour le fichier de sauvegarde).
Si vous omettez l'alias de la base de données, il utilisera le main
base de données.
Voici un exemple :
.backup mabackup.db
Cela créera un fichier appelé
backup.db
contenant une sauvegarde de la base de données. Vous pouvez le rattacher au shell de ligne de commande SQLite3 si nécessaire (faites ensuite un .databases
pour afficher la liste des connexions à la base de données) :
sqlite> ATTACH DATABASE 'mybackup.db' AS MyBackup;sqlite> .databasesseq name file --- --------------- ----------- -----------------------------------------------0 principal / Utilisateurs/quackit/sqlite/music.db 1 temp 2 MyBackup /Utilisateurs/quackit/sqlite/mybackup.db
En pratique, vous sauvegarderiez probablement la base de données à un emplacement différent. Par conséquent, vous devez fournir le chemin d'accès complet au fichier dans le .backup
commande. Par exemple, .backup /remote/folder/mybackup.db
Le .clone
Commande
Le .clone
La commande est similaire à .backup
commande. Cependant, .clone
utilise uniquement la base de données actuelle, vous ne pouvez donc pas spécifier une autre base de données à cloner.
Pour cloner la base de données actuelle, tapez .clone
suivi du nom du fichier de base de données pour les données clonées.
Comme ceci :
.clone monclone.db
Exécution qui ressemble à ceci :
sqlite> .clone monclone.dbArtists... doneAlbums... doneAlbums2... doneCatalog... doneGenres... done
Vous pouvez attacher la base de données clonée comme l'autre :
sqlite> ATTACH DATABASE 'myclone.db' AS MyClone;sqlite> .databasesseq name file --- --------------- ----------- -----------------------------------------------0 principal / Users/quackit/sqlite/music.db 1 temp 2 MyBackup /Users/quackit/sqlite/mybackup.db 3 MyClone /Users/quackit/sqlite/myclone.db
Le .dump
Commande
Vous pouvez utiliser le .dump
commande pour vider la base de données dans un fichier ASCII. Par exemple, vous pouvez le vider dans un fichier .sql contenant les instructions SQL à partir desquelles générer la base de données.
Vider toute la base de données
Cet exemple vide le fichier music.db fichier vers music.sql .
sqlite3 music.db .dump> music.sql
Contenu de music.sql (défilement requis) :
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 " Artistes" 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','Groupe de jazz australien centré sur les polyrythmies.');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 "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,'Voile 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, " Nom de l'artiste" TEXTE ); INSÉRER DANS LES VALEURS "Catalogue" ('1', 'Killers', 'Iron Maiden'); INSÉRER DANS LES VALEURS "Catalogue" ('2', 'Powerslave', 'Iron Maiden'); INSÉRER DANS " Catalog" VALUES('12','Somewhere in Time','Iron Maiden');INSERT INTO "Catalog" VALUES('3','Surfing with the Alien','Joe Satriani');INSERT INTO "Catalog" VALUES ('10','Voler dans un rêve bleu','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,'Comédie');INSERT INTO "Genres" VALUES(5,'Jazz');INSERT INTO "Genres" VALUES(6,'Blues ');INSERT INTO "Genres" VALUES(7,'Techno');COMMIT;
Copier le fichier
Les méthodes ci-dessus vous permettent de sauvegarder une base de données à partir du shell de ligne de commande SQLite3.
Vous pouvez également sauvegarder une base de données simplement en copiant/collant le fichier physique sur le système de fichiers.
Si vous n'êtes pas sûr de l'emplacement du fichier physique, vous pouvez utiliser le .databases
commande pour trouver l'emplacement :
sqlite> fichier de nom .databasesseq --- --------------- ----------------------- -----------------------------------0 main /Users/quackit/sqlite/music.db 1 tempDonc, armé des connaissances ci-dessus, je peux maintenant naviguer vers /Users/quackit/sqlite/ répertoire, copiez le fichier music.db fichier et collez-le dans un emplacement sûr.