Pythonでデータベースのバックアップと復元を行う方法を完全解説!初心者でも安心
生徒
「Pythonでデータベースのバックアップって、そもそも何をするんですか?」
先生
「データベースの中身を丸ごとコピーして、安全な場所に保存する作業のことです。パソコンの大切な写真をUSBメモリにコピーするのと同じイメージですね。」
生徒
「復元というのは、そのコピーを戻すことですか?」
先生
「その通りです。データが消えたり壊れたりしたときに、バックアップから元の状態に戻します。では、Pythonを使った方法を順番に見ていきましょう。」
1. データベースのバックアップとは何か
Python(パイソン)でデータベース操作を行うとき、バックアップはとても重要です。データベースとは、たくさんの情報を整理して保存している箱のようなものです。住所録や売上表を一冊のノートにまとめているイメージをすると分かりやすいです。
バックアップを取らずに使い続けると、パソコンの故障や操作ミスで中身が消えてしまうことがあります。そのため、定期的にコピーを作る習慣が大切になります。
2. Pythonで扱いやすいSQLiteデータベース
初心者におすすめなのがSQLite(エスキューライト)というデータベースです。難しい設定が不要で、ファイル一つで管理できます。Pythonには最初からSQLiteを操作する機能が入っているため、すぐに使えます。
SQLiteのデータベースは、拡張子「.db」のファイルとして保存されます。このファイル自体がデータの正体なので、コピーするだけでバックアップになります。
3. ファイルをコピーしてバックアップする基本方法
最も簡単なバックアップ方法は、データベースファイルを別の場所にコピーすることです。Pythonでは「shutil(シューティル)」という道具を使います。これはファイルを移動したりコピーしたりするための便利な機能です。
import shutil
shutil.copy("sample.db", "backup_sample.db")
print("バックアップが完了しました")
バックアップが完了しました
このプログラムでは、「sample.db」というデータベースを「backup_sample.db」という名前でコピーしています。コピーが終わると画面にメッセージが表示されます。
4. 日付付きでバックアップを保存する方法
毎回同じ名前で保存すると、古いバックアップが消えてしまいます。そこで、日付を付けて保存すると管理しやすくなります。日付とは、今日が何年何月何日かを表す情報です。
import shutil
import datetime
today = datetime.date.today()
backup_name = f"backup_{today}.db"
shutil.copy("sample.db", backup_name)
print("日付付きバックアップを作成しました")
日付付きバックアップを作成しました
これで、毎日実行すると別々のバックアップファイルが作られます。家計簿を日ごとにコピーして残す感覚に近いです。
5. バックアップからデータベースを復元する方法
復元とは、バックアップしておいたファイルを元の場所に戻す作業です。操作はバックアップとほぼ同じで、コピー元とコピー先を逆にするだけです。
import shutil
shutil.copy("backup_sample.db", "sample.db")
print("データベースを復元しました")
データベースを復元しました
これで、バックアップ時点の状態にデータベースが戻ります。間違って消したデータも元通りになります。
6. Pythonから安全にバックアップする考え方
データベースを使用中にバックアップを取ると、内容が中途半端になることがあります。そのため、処理が終わってからバックアップを行うことが大切です。
「安全に」という言葉は、失敗しにくい方法を選ぶという意味です。難しい操作を一度に行わず、シンプルな手順で進めることが初心者には重要です。
7. よくある失敗と注意点
よくある失敗として、バックアップを取ったつもりで実は取れていないケースがあります。プログラムの実行結果を必ず確認しましょう。
また、バックアップファイルを同じパソコンだけに保存していると、本体が壊れたときに意味がありません。外付け保存先にコピーする意識も大切です。
8. Pythonでバックアップを習慣化する大切さ
Pythonでデータベース操作を覚えると、つい作ることに夢中になりがちですが、守ることも同じくらい重要です。バックアップは、データを守るための保険のような存在です。
難しい技術は使わなくても、今回紹介した方法だけで十分に安全性は高まります。まずは「コピーして残す」ことを習慣にしましょう。