SQLite データベースのバックアップ

SQLiteSQLiteBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験(Lab)では、SQLite データベースをバックアップおよび復元する方法を学びます。.dump コマンドを使用してデータベースを SQL ファイルにエクスポートし、バックアップを作成し、そのバックアップからデータベースを復元する方法を学びます。これは、データを保護するために不可欠です。


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{{"SQLite データベースのバックアップ"}} sqlite/make_table -.-> lab-552548{{"SQLite データベースのバックアップ"}} sqlite/add_row -.-> lab-552548{{"SQLite データベースのバックアップ"}} sqlite/add_rows -.-> lab-552548{{"SQLite データベースのバックアップ"}} sqlite/get_all -.-> lab-552548{{"SQLite データベースのバックアップ"}} sqlite/query_where -.-> lab-552548{{"SQLite データベースのバックアップ"}} sqlite/verify_table -.-> lab-552548{{"SQLite データベースのバックアップ"}} end

サンプルデータベースの作成

このステップでは、サンプル SQLite データベースを作成し、いくつかのデータを投入します。これにより、バックアップと復元を練習するためのデータベースが得られます。

まず、SQLite シェルを開きます。ここでは、データベースと対話します。

sqlite3 mydatabase.db

このコマンドは SQLite シェルを起動し、mydatabase.db という名前の新しいデータベースファイルを作成します。ファイルがすでに存在する場合は、代わりにそのファイルを開きます。

次に、idname、および email のカラムを持つ users という名前のテーブルを作成します。

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

この SQL コマンドは、users という名前のテーブルを作成します。id カラムは整数であり、主キー(PRIMARY KEY)です。これは、テーブル内の各行を一意に識別することを意味します。name および email カラムはテキストフィールドです。

次に、いくつかのサンプルデータを users テーブルに挿入します。

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

これらのコマンドは、users テーブルに 2 つの行を追加します。最初の行には名前 'Alice' とメール '[email protected]' があります。2 番目の行には名前 'Bob' とメール '[email protected]' があります。

データが正しく挿入されたことを確認するには、次のコマンドを実行します。

SELECT * FROM users;

次のような出力が表示されるはずです。

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

この出力は users テーブルの内容を示しており、データが正常に挿入されたことを確認できます。

データベースを SQL ファイルにエクスポートする

このステップでは、mydatabase.db データベースを mydatabase.sql という名前の SQL ファイルにエクスポートします。この SQL ファイルには、データベースとそのデータを再作成するために必要なコマンドが含まれます。

まず、SQLite シェルを終了します。

.exit

このコマンドはデータベースへの接続を閉じ、Linux ターミナルに戻ります。

次に、.dump コマンドを使用して、データベースを SQL ファイルにエクスポートします。

sqlite3 mydatabase.db .dump > mydatabase.sql

このコマンドは、sqlite3 コマンドラインツールを使用して mydatabase.db データベースに接続します。.dump コマンドは、SQLite にデータベース全体を SQL コマンドのシーケンスとして出力するように指示します。> 記号は、.dump コマンドの出力を mydatabase.sql という名前のファイルにリダイレクトします。

エクスポートが成功したことを確認するには、cat コマンドを使用して mydatabase.sql ファイルの内容を表示できます。

cat mydatabase.sql

次のような出力が表示されるはずです。

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;

この出力は、users テーブルを作成し、データを挿入する SQL コマンドを示しています。これにより、データベースが SQL ファイルに正常にエクスポートされたことが確認できます。

データベースのバックアップを作成する

このステップでは、同じ .dump コマンドを使用してデータベースのバックアップを作成します。これは基本的に SQL ファイルへのエクスポートと同じプロセスですが、バックアップを別のファイルに保存します。

sqlite3 mydatabase.db .dump > mydatabase_backup.sql

このコマンドは、mydatabase.db データベースのバックアップを作成し、mydatabase_backup.sql という名前のファイルに保存します。

バックアップが正常に作成されたことを確認するには、cat コマンドを使用して mydatabase_backup.sql ファイルの内容を表示できます。

cat mydatabase_backup.sql

前のステップと同じ出力が表示されるはずです。これにより、バックアップファイルにデータベースを再作成するために必要な SQL コマンドが含まれていることが確認できます。

バックアップからデータベースを復元する

このステップでは、mydatabase_backup.sql ファイルからデータベースを復元します。これにより、バックアップからデータベースとそのデータが再作成されます。

まず、元のデータベースが失われたシナリオをシミュレートしましょう。mydatabase.db ファイルを削除します。

rm mydatabase.db

このコマンドは、ファイルシステムから mydatabase.db ファイルを削除します。

次に、mydatabase_backup.sql ファイルからデータベースを復元します。

sqlite3 mydatabase.db < mydatabase_backup.sql

このコマンドは、sqlite3 コマンドラインツールを使用して、mydatabase.db という名前の新しいデータベースファイルを作成します。< 記号は、mydatabase_backup.sql ファイルの内容を sqlite3 コマンドにリダイレクトし、ファイル内の SQL コマンドを実行します。これにより、データベースとそのデータが再作成されます。

復元が成功したことを確認するには、SQLite シェルでデータベースを開きます。

sqlite3 mydatabase.db

そして、users テーブルをクエリ(query)します。

SELECT * FROM users;

バックアップされたデータが表示されるはずです。

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

これにより、データベースがバックアップファイルから正常に復元されたことが確認できます。

SQLite シェルを終了します。

.exit

まとめ

この実験(Lab)では、SQLite データベースをバックアップおよび復元する方法を学びました。.dump コマンドを使用してデータベースを SQL ファイルにエクスポートし、そのファイルからデータベースを復元しました。これらのスキルは、データを保護し、データ損失から回復できるようにするために不可欠です。