SQLiteコマンドラインは、データベース全体をエクスポートまたはバックアップするためのいくつかの方法を提供します。それらの1つには、.dump
が含まれます。 ドットコマンド。
.dump
コマンドを使用すると、データベース全体を単一のASCIIテキストファイルに変換できます。つまり、データベース全体をSQLとしてレンダリングします。テキストファイルには、テーブルの作成、データの挿入などに必要なすべてのSQLステートメントが含まれています。
.dump
を使用することもできます 圧縮ファイルを作成します。これらの両方の方法の概要を以下に示します。
SQLとしてエクスポート
.dump
を使用できます .output
と組み合わせて または.once
データベース全体を.sqlファイルにエクスポートします。
このファイルには、データベースの再構築に必要なすべてのSQLステートメントが含まれます(すべてのテーブルの作成、すべてのデータの挿入など)。
次に例を示します:
.once Store.sql
.dump
この場合、.once
を使用しました 指図。これは、次のコマンドまたはSQLステートメントの結果を指定されたファイルに転送するだけです。
この場合、次のコマンドは.dump
です。 dotコマンド。デフォルトでは、すべてのデータベースコンテンツをSQLとしてレンダリングします。
または、.output
を使用することもできます 、ただし、これによりすべての結果が表示されます ファイルへの将来のコマンド/SQLステートメント。注意しないと、これは意図しない結果をもたらす可能性があります。
データベースを復元する
.sqlバックアップファイルを作成したら、SQLite内からそのファイルを読み取るだけで、データベース全体を再構築できます。
たとえば、新しいデータベースファイル(まだ存在していないファイル)を指定しながらSQLiteに接続できます:
sqlite3 Store2.db
存在しないデータベースファイルを指定することにより、SQLiteは空のデータベースを作成します。
SQLiteを使用しているので、バックアップファイルの内容を読み取ることができます。
.read Store.sql
これですべてです。データベースは.sqlファイルから再構築されました。すべてのテーブルが作成され、すべてのデータが挿入されました。
圧縮ファイルを作成する
データベースが大きく、大量のデータが含まれている場合は、圧縮バックアップファイルを作成することをお勧めします。
次に例を示します:
sqlite3 Store .dump | gzip -c >Store.dump.gz
これはSQLiteの外部で実行されることに注意してください。つまり、このコマンドを実行する前にSQLiteに接続していませんでした。新しいターミナルウィンドウを開いて、そのコマンドを実行しただけです。
実際、私は最初にバックアップフォルダに移動しました。これを行わない場合は、バックアップファイルにパスを含める必要があります。
zcatを使用してデータベースを再構築できます 。 zcat ユーティリティを使用すると、実際に解凍せずに、圧縮ファイルの内容を表示できます。
したがって、前の例で作成されたファイルは、 zcatを使用して再構築できます。 ユーティリティ。
zcat Store.dump.gz | sqlite3 Store2
これは、システムによっては機能する場合と機能しない場合があります。これが機能しない場合は、別の圧縮ユーティリティを使用する必要があるかもしれません。