Skip to main content
`Ctrl`+`K`

# 7.3.22. `dump`

## 7.3.22.1. 概要

dump - データベースのスキーマとデータを出力する

Groonga組込コマンドの一つであるdumpについて説明します。組込コマンドは、groonga実行ファイルの引数、標準入力、 またはソケット経由でgroongaサーバにリクエストを送信することによって実行します。

dumpはデータベースのスキーマとデータを後から読み込めるフォーマットで出力します。

dumpの結果は大きくなるため、 主にコマンドラインから使うことを想定しています。データベースのバックアップが主な利用方法です。

dumpが出力するフォーマットは直接Groongaが解釈できるフォーマットです。そのため、以下のようにしてデータベースをコピーすることができます。

    % groonga original/db dump > dump.grn
    % mkdir backup
    % groonga -n backup/db < dump.grn

## 7.3.22.2. 構文

    dump [tables=null]
         [dump_plugins=yes]
         [dump_schema=yes]
         [dump_records=yes]
         [dump_indexes=yes]
         [dump_configs=yes]
         [sort_hash_table=no]

## 7.3.22.3. 使い方

dumpの挙動を確認するためのスキーマ定義とサンプルデータは以下の通りです。

    plugin_register token_filters/stop_word
    table_create Bookmarks TABLE_HASH_KEY ShortText
    column_create Bookmarks title COLUMN_SCALAR ShortText
    table_create Lexicon TABLE_PAT_KEY ShortText
    table_create Sites TABLE_NO_KEY
    column_create Sites url COLUMN_SCALAR ShortText
    column_create Lexicon bookmark_title COLUMN_INDEX Bookmarks title
    load --table Bookmarks
    [
    {"_key":"Groonga", "title":"Introduction to Groonga"},
    {"_key":"PGroonga", "title":"Introduction to PGroonga"},
    {"_key":"Mroonga", "title":"Introduction to Mroonga"}
    ]
    load --table Sites
    [
    {"_id": 1, "url":"http://groonga.org"},
    {"_id": 2, "url":"http://mroonga.org"}
    ]

データベースのすべてのデータをダンプ:

    > dump
    plugin_register token_filters/stop_word

    table_create Sites TABLE_NO_KEY
    column_create Sites url COLUMN_SCALAR ShortText

    table_create Bookmarks TABLE_HASH_KEY ShortText
    column_create Bookmarks title COLUMN_SCALAR ShortText

    table_create Lexicon TABLE_PAT_KEY ShortText

    load --table Sites
    [
    ["_id","url"],
    [1,"http://groonga.org"],
    [2,"http://mroonga.org"]
    ]

    load --table Bookmarks
    [
    ["_key","title"],
    ["Groonga","Introduction to Groonga"],
    ["PGroonga","Introduction to PGroonga"],
    ["Mroonga","Introduction to Mroonga"]
    ]

    create Lexicon bookmark_title COLUMN_INDEX Bookmarks title

スキーマと指定したテーブルのデータをダンプ:

    > dump Bookmarks
    plugin_register token_filters/stop_word

    table_create Sites TABLE_NO_KEY
    column_create Sites url COLUMN_SCALAR ShortText

    table_create Bookmarks TABLE_HASH_KEY ShortText
    column_create Bookmarks title COLUMN_SCALAR ShortText

    table_create Lexicon TABLE_PAT_KEY ShortText

    load --table Bookmarks
    [
    ["_key","title"],
    ["Groonga","Introduction to Groonga"],
    ["PGroonga","Introduction to PGroonga"],
    ["Mroonga","Introduction to Mroonga"]
    ]

    column_create Lexicon bookmark_title COLUMN_INDEX Bookmarks title

プラグインのみダンプ:

    > dump --dump_schema no --dump_records no --dump_indexes no
    plugin_register token_filters/stop_word

レコードのみダンプ:

    > dump --dump_schema no --dump_plugins no --dump_indexes no
    load --table Sites
    [
    ["_id","url"],
    [1,"http://groonga.org"],
    [2,"http://mroonga.org"]
    ]

    load --table Bookmarks
    [
    ["_key","title"],
    ["Groonga","Introduction to Groonga"],
    ["PGroonga","Introduction to PGroonga"],
    ["Mroonga","Introduction to Mroonga"]
    ]

スキーマのみダンプ:

    > dump --dump_records no --dump_plugins no --dump_indexes no
    table_create Sites TABLE_NO_KEY
    column_create Sites url COLUMN_SCALAR ShortText

    table_create Bookmarks TABLE_HASH_KEY ShortText
    column_create Bookmarks title COLUMN_SCALAR ShortText

    table_create Lexicon TABLE_PAT_KEY ShortText

ハッシュテーブルのデータをソートしてダンプ:

    > dump Bookmarks --sort_hash_table yes
    plugin_register token_filters/stop_word

    table_create Sites TABLE_NO_KEY
    column_create Sites url COLUMN_SCALAR ShortText

    table_create Bookmarks TABLE_HASH_KEY ShortText
    column_create Bookmarks title COLUMN_SCALAR ShortText

    table_create Lexicon TABLE_PAT_KEY ShortText

    load --table Bookmarks
    [
    ["_key","title"],
    ["Groonga","Introduction to Groonga"],
    ["Mroonga","Introduction to Mroonga"],
    ["PGroonga","Introduction to PGroonga"]
    ]

    column_create Lexicon bookmark_title COLUMN_INDEX Bookmarks title

## 7.3.22.4. 引数

いくつか省略可能な引数があります。

### 7.3.22.4.1. 省略可能引数

#### 7.3.22.4.1.1. `tables`

出力対象のテーブルを「,」（カンマ）区切りで指定します。存在しないテーブルを指定した場合は無視されます。

#### 7.3.22.4.1.2. `dump_plugins`

バージョン 5.0.3 で追加.

登録されたプラグインを出力に含めるかどうかをカスタマイズすることができます。登録されたプラグインを出力から除外する場合、 `no` を指定します。

デフォルト値は `yes` です。

#### 7.3.22.4.1.3. `dump_schema`

バージョン 5.0.3 で追加.

データベーススキーマを出力に含めるかどうかをカスタマイズすることができます。データベーススキーマを出力から除外する場合、 `no` を指定します。

デフォルト値は `yes` です。

#### 7.3.22.4.1.4. `dump_records`

バージョン 5.0.3 で追加.

レコードを出力に含めるかどうかをカスタマイズすることができます。レコードを出力から除外する場合、 `no` を指定します。

デフォルト値は `yes` です。

#### 7.3.22.4.1.5. `dump_indexes`

バージョン 5.0.3 で追加.

インデックスを出力に含めるかどうかをカスタマイズすることができます。インデックスを出力から除外する場合、 `no` を指定します。

デフォルト値は `yes` です。

#### 7.3.22.4.1.6. `sort_hash_table`

バージョン 7.0.5 で追加.

ハッシュテーブルの出力を昇順にソートして出力することができます。レコードをソートして出力する場合、 `yes` を指定します。

デフォルト値は `no` です。

## 7.3.22.5. 戻り値

データベースのスキーマとデータをGroongaの組み込みコマンド呼び出し形式で出力します。output_type指定は無視されます。