データベースをダンプ(.dumpコマンド)

広告

データベースに含まれているテーブルなどの情報をSQL文の形で出力することをダンプと呼びます。ダンプを行うと例えばテーブルの構造やテーブルに格納されている1つ1つのデータについてSQL文の形で出力されます。ここではダンプの使い方について解説します。

1.ダンプの使い方
2.ダンプした結果をファイルへ出力

SQLiteでダンプを行うには「.dump」コマンドを使います。書式は次のとおりです。

.dump ?TABLE? ...

引数を省略して「.dump」コマンドを実行した場合はデータベースに関する全ての情報をダンプします。引数にテーブル名を指定した場合は、そのテーブルに関してだけダンプを行います。

それでは2つのテーブルと1つのインデックスが作成されているデータベースに接続し「.dump」コマンドを実行してみます。

.dump

p4-1

例えばテーブルの場合であれば、現在作成されているテーブルと同じものを作成するためのCREATE TABLE文、そしてテーブルに格納されているデータと同じデータを格納するためのINSERT文が出力されています。この出力されたSQL文を順に実行していくことで現在のデータベースと同じデータベースを作成することができます。

データベース全体だはなく特定のテーブルに関するダンプだけを行いたい場合は引数にテーブル名を指定します。例としてproductテーブルに関するダンプを出力してみます。

.dump product

p4-2

複数のテーブルを指定する場合は空白で区切ってテーブル名を順番に記述して下さい。

ダンプした内容はファイルへ出力して利用するケースが多いと思いますが、ファイルへ出力するようなオプションは用意されています。そこでファイルへ出力したい場合には「.output」コマンド使って画面に対する出力を指定したファイルに対する出力に変更してからダンプを行います。(「.output」コマンドについては「SELECT文の実行結果などをファイルへ出力する(.outputコマンド)」を参照して下さい)。

実際に試してみます。まずダンプなどの実行結果をファイルへ出力するように「.output」コマンドを実行します。

.output ./dump.txt

p4-3

出力先がカレントディレクトリにある「dump.txt」へ変更されました。次に「.dump」コマンドを実行します。

.dump

p4-4

ダンプした結果は画面ではなくファイルに対して出力しているため画面上には何も表示されません。

カレントディレクトリを見て頂くと「dump.txt」というファイルが新しく作成されています。

p4-5

「dump.txt」ファイルはテキストファイルですのでテキストエディタで開いて見て下さい。ダンプした結果がファイルに書き込まれていることが確認できます。

p4-6

出力先をファイルから画面に戻す場合には次のように「.output stdout」と実行して下さい。実行後にダンプなどを行うと再び画面に対して結果が表示されてるようになったことが確認できます。

.output stdout

p4-7

なおファイルに対して出力した時にファイルが読み込み専用でしか開けない場合には、出力先をファイルから画面に戻すかコマンドラインツールを終了すれば読み取り専用ではなくなります。

( Written by Tatsuo Ikura )