概要
このドキュメントでは、SQLiteデータベースからデータをエクスポートし、データにインポートする方法について説明します。このトピックの詳細については、公式のSQLiteドキュメントを参照してください。
sqlite3によるデータエクスポート
sqlite3は、SQLiteデータベース全体で様々なワークフローに使用できるネイティブのSQLiteコマンドラインユーティリティです。このコマンドのすべてのオプションを確認するには、次を実行します。
sqlite3 --help
データのエクスポートは、通常、sqlite3プロンプト内で.dumpコマンドを使用して行われます。
データをエクスポートするには、sqlite3プロンプトに入り、SQLiteデータベースファイルの場所(.dbのサフィックスが付いている場合があります)を指定する必要があります。
sqlite3 ./dev.db
プロンプトに入ったら、次のようにデータをエクスポートできます。
.output ./backup.sql.dump.exit
または、プロンプトで.dumpコマンドの後にテーブル名を追加することで、特定のテーブルをエクスポートできます。たとえば、次のコマンドはusersテーブルのみをダンプします。
.output ./backup_users.sql.dump users.exit
すべてのデータを除外し、データベーススキーマ(DDL)のみをエクスポートする場合は、.dumpの代わりに.schemaを使用できます。
.output ./backup_schema.sql.schema.exit
SQLファイルからのデータインポート
sqlite3プロンプト内で.dumpコマンドを使用してSQLiteデータベースをSQLファイルとしてエクスポートした後、.readコマンドを使用してSQLファイルをsqlite3に再度入力することで、データベースの状態を復元できます。
.readコマンドを使用する前に、sqlite3プロンプトに入り、SQLiteデータベースファイルを指定する必要があります。
sqlite3 ./restore.db
これで、次のようにSQLファイルからデータをインポートできます。
.read ./backup.sql.exit
まとめ
SQLiteからデータをエクスポートし、それを再度取り込んでデータ構造を再作成し、データベースをpopulateすることは、データの移行だけでなく、バックアップとリカバリにも良い方法です。.dumpと.readコマンドがこのタスクを達成するためにどのように連携するかを理解することで、データベースの境界を越えてデータを転送するのに役立ちます。
