SQLite
 sql >> Base de données >  >> RDS >> SQLite

SQLite - Sauvegarder une base de données dans un fichier

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 temp  

Donc, 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.