はじめに
この実験(Lab)では、SQLite データベースをバックアップおよび復元する方法を学びます。.dump
コマンドを使用してデータベースを SQL ファイルにエクスポートし、バックアップを作成し、そのバックアップからデータベースを復元する方法を学びます。これは、データを保護するために不可欠です。
この実験(Lab)では、SQLite データベースをバックアップおよび復元する方法を学びます。.dump
コマンドを使用してデータベースを SQL ファイルにエクスポートし、バックアップを作成し、そのバックアップからデータベースを復元する方法を学びます。これは、データを保護するために不可欠です。
このステップでは、サンプル SQLite データベースを作成し、いくつかのデータを投入します。これにより、バックアップと復元を練習するためのデータベースが得られます。
まず、SQLite シェルを開きます。ここでは、データベースと対話します。
sqlite3 mydatabase.db
このコマンドは SQLite シェルを起動し、mydatabase.db
という名前の新しいデータベースファイルを作成します。ファイルがすでに存在する場合は、代わりにそのファイルを開きます。
次に、id
、name
、および 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
テーブルの内容を示しており、データが正常に挿入されたことを確認できます。
このステップでは、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 ファイルにエクスポートし、そのファイルからデータベースを復元しました。これらのスキルは、データを保護し、データ損失から回復できるようにするために不可欠です。