はじめに
この実験(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', 'alice@example.com');
INSERT INTO users (name, email) VALUES ('Bob', 'bob@example.com');
これらのコマンドは、users テーブルに 2 つの行を追加します。最初の行には名前 'Alice' とメール 'alice@example.com' があります。2 番目の行には名前 'Bob' とメール 'bob@example.com' があります。
データが正しく挿入されたことを確認するには、次のコマンドを実行します。
SELECT * FROM users;
次のような出力が表示されるはずです。
1|Alice|alice@example.com
2|Bob|bob@example.com
この出力は 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','alice@example.com');
INSERT INTO users VALUES(2,'Bob','bob@example.com');
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|alice@example.com
2|Bob|bob@example.com
これにより、データベースがバックアップファイルから正常に復元されたことが確認できます。
SQLite シェルを終了します。
.exit
この実験(Lab)では、SQLite データベースをバックアップおよび復元する方法を学びました。.dump コマンドを使用してデータベースを SQL ファイルにエクスポートし、そのファイルからデータベースを復元しました。これらのスキルは、データを保護し、データ損失から回復できるようにするために不可欠です。