Sauvegarde de base de données SQLite

SQLiteSQLiteBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce labo, vous apprendrez comment sauvegarder et restaurer une base de données SQLite. Vous apprendrez à exporter une base de données vers un fichier SQL en utilisant la commande .dump, à créer une sauvegarde (backup), puis à restaurer la base de données à partir de cette sauvegarde. Ceci est essentiel pour protéger vos données.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sqlite(("SQLite")) -.-> sqlite/SQLiteGroup(["SQLite"]) sqlite/SQLiteGroup -.-> sqlite/init_db("Create SQLite Database") sqlite/SQLiteGroup -.-> sqlite/make_table("Create New Table") sqlite/SQLiteGroup -.-> sqlite/add_row("Insert Single Row") sqlite/SQLiteGroup -.-> sqlite/add_rows("Insert Multiple Rows") sqlite/SQLiteGroup -.-> sqlite/get_all("Select All Rows") sqlite/SQLiteGroup -.-> sqlite/query_where("Filter With WHERE") sqlite/SQLiteGroup -.-> sqlite/verify_table("Check Table Existence") subgraph Lab Skills sqlite/init_db -.-> lab-552548{{"Sauvegarde de base de données SQLite"}} sqlite/make_table -.-> lab-552548{{"Sauvegarde de base de données SQLite"}} sqlite/add_row -.-> lab-552548{{"Sauvegarde de base de données SQLite"}} sqlite/add_rows -.-> lab-552548{{"Sauvegarde de base de données SQLite"}} sqlite/get_all -.-> lab-552548{{"Sauvegarde de base de données SQLite"}} sqlite/query_where -.-> lab-552548{{"Sauvegarde de base de données SQLite"}} sqlite/verify_table -.-> lab-552548{{"Sauvegarde de base de données SQLite"}} end

Créer une base de données exemple

Dans cette étape, vous allez créer une base de données SQLite exemple et la remplir avec des données. Cela vous fournira une base de données pour vous entraîner à la sauvegarde (backup) et à la restauration.

Tout d'abord, ouvrez le shell SQLite. C'est là que vous interagirez avec la base de données.

sqlite3 mydatabase.db

Cette commande démarre le shell SQLite et crée un nouveau fichier de base de données nommé mydatabase.db. Si le fichier existe déjà, il ouvrira ce fichier à la place.

Maintenant, créez une table nommée users avec des colonnes pour id, name et email :

CREATE TABLE users (
    id INTEGER PRIMARY KEY,
    name TEXT,
    email TEXT
);

Cette commande SQL crée une table nommée users. La colonne id est un entier et la clé primaire (primary key), ce qui signifie qu'elle identifie de manière unique chaque ligne de la table. Les colonnes name et email sont des champs de texte.

Ensuite, insérez des données exemples dans la table users :

INSERT INTO users (name, email) VALUES ('Alice', '[email protected]');
INSERT INTO users (name, email) VALUES ('Bob', '[email protected]');

Ces commandes ajoutent deux lignes à la table users. La première ligne a le nom 'Alice' et l'email '[email protected]'. La deuxième ligne a le nom 'Bob' et l'email '[email protected]'.

Pour vérifier que les données ont été insérées correctement, exécutez la commande suivante :

SELECT * FROM users;

Vous devriez voir une sortie similaire à ceci :

1|Alice|[email protected]
2|Bob|[email protected]

Cette sortie montre le contenu de la table users, confirmant que les données ont été insérées avec succès.

Exporter la base de données vers un fichier SQL

Dans cette étape, vous allez exporter la base de données mydatabase.db vers un fichier SQL nommé mydatabase.sql. Ce fichier SQL contiendra les commandes nécessaires pour recréer la base de données et ses données.

Tout d'abord, quittez le shell SQLite :

.exit

Cette commande ferme la connexion à la base de données et vous ramène au terminal Linux.

Maintenant, utilisez la commande .dump pour exporter la base de données vers un fichier SQL :

sqlite3 mydatabase.db .dump > mydatabase.sql

Cette commande utilise l'outil en ligne de commande sqlite3 pour se connecter à la base de données mydatabase.db. La commande .dump indique à SQLite de sortir (output) l'intégralité de la base de données sous forme d'une série de commandes SQL. Le symbole > redirige la sortie (output) de la commande .dump vers un fichier nommé mydatabase.sql.

Pour vérifier que l'exportation a réussi, vous pouvez afficher le contenu du fichier mydatabase.sql en utilisant la commande cat :

cat mydatabase.sql

Vous devriez voir une sortie similaire à ceci :

PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE users (
    id INTEGER PRIMARY KEY,
    name TEXT,
    email TEXT
);
INSERT INTO users VALUES(1,'Alice','[email protected]');
INSERT INTO users VALUES(2,'Bob','[email protected]');
COMMIT;

Cette sortie montre les commandes SQL qui créent la table users et insèrent les données. Cela confirme que la base de données a été exportée avec succès vers un fichier SQL.

Créer une sauvegarde (backup) de la base de données

Dans cette étape, vous allez créer une sauvegarde (backup) de la base de données en utilisant la même commande .dump. Il s'agit essentiellement du même processus que l'exportation vers un fichier SQL, mais nous enregistrerons la sauvegarde dans un fichier différent.

sqlite3 mydatabase.db .dump > mydatabase_backup.sql

Cette commande crée une sauvegarde (backup) de la base de données mydatabase.db et l'enregistre dans un fichier nommé mydatabase_backup.sql.

Pour vérifier que la sauvegarde (backup) a été créée avec succès, vous pouvez afficher le contenu du fichier mydatabase_backup.sql en utilisant la commande cat :

cat mydatabase_backup.sql

Vous devriez voir la même sortie (output) que dans l'étape précédente, confirmant que le fichier de sauvegarde (backup) contient les commandes SQL nécessaires pour recréer la base de données.

Restaurer la base de données à partir de la sauvegarde (backup)

Dans cette étape, vous allez restaurer la base de données à partir du fichier mydatabase_backup.sql. Cela recréera la base de données et ses données à partir de la sauvegarde (backup).

Tout d'abord, simulons un scénario où la base de données originale est perdue. Supprimez le fichier mydatabase.db :

rm mydatabase.db

Cette commande supprime le fichier mydatabase.db du système de fichiers.

Maintenant, restaurez la base de données à partir du fichier mydatabase_backup.sql :

sqlite3 mydatabase.db < mydatabase_backup.sql

Cette commande utilise l'outil en ligne de commande sqlite3 pour créer un nouveau fichier de base de données nommé mydatabase.db. Le symbole < redirige le contenu du fichier mydatabase_backup.sql vers la commande sqlite3, qui exécute les commandes SQL dans le fichier. Cela recrée la base de données et ses données.

Pour vérifier que la restauration a réussi, ouvrez la base de données dans le shell SQLite :

sqlite3 mydatabase.db

Et interrogez (query) la table users :

SELECT * FROM users;

Vous devriez voir les données qui ont été sauvegardées (backed up) :

1|Alice|[email protected]
2|Bob|[email protected]

Cela confirme que la base de données a été restaurée avec succès à partir du fichier de sauvegarde (backup).

Quittez le shell SQLite :

.exit

Résumé

Dans ce labo, vous avez appris à sauvegarder (back up) et à restaurer une base de données SQLite. Vous avez utilisé la commande .dump pour exporter la base de données vers un fichier SQL, puis vous avez restauré la base de données à partir de ce fichier. Ces compétences sont essentielles pour protéger vos données et vous assurer que vous pouvez récupérer en cas de perte de données.