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