共有

概要

このドキュメントでは、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コマンドがこのタスクを達成するためにどのように連携するかを理解することで、データベースの境界を越えてデータを転送するのに役立ちます。

著者について
Justin Ellingwood

ジャスティン・エリングウッド

ジャスティンは2013年からデータベース、Linux、インフラ、開発者ツールについて執筆しています。現在は妻と2匹のウサギとベルリンに住んでいます。彼は通常、三人称で書く必要がないため、関係者全員にとって安心です。
© . All rights reserved.