0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Couchbase Lite開発:cbliteツール解説

Posted at

cbliteツールとは

cbliteは、Couchbase Liteデータベースを検査およびクエリするためのコマンドラインツールです。
以下のふたつのモードで利用することができます。

  • ワンショット(非インタラクティブ)モード
  • インタラクティブモード

ワンショット(非インタラクティブ)モード

ワンショットモードでは、最初の引数がサブコマンドになり、その後にオプションのフラグ引数が続きます。また、データベースパスを指定します。

以下に、サブコマンドの概要を示します。

コマンド 目的
cblite cat 1つ以上のドキュメントの本文を表示する
cblite check データベースファイルの破損をチェックする
cblite compact データベースファイルを圧縮し、ディスクスペースを解放する
cblite cp データベースの複製、インポート、またはエクスポート
cblite help ヘルプテキストを表示する
cblite info データベースに関する情報を表示する
cblite logcat バイナリログファイルをプレーンテキストに変換する
cblite ls データベース内のドキュメントを一覧表示する
cblite put ドキュメントを作成または更新する
cblite query [JSONクエリスキーマ] [QUERY]を使用してクエリを実行する
cblite reindex パフォーマンスを向上させる可能性のあるインデックスを再構築する
cblite revs ドキュメントのリビジョンを一覧表示する
cblite rm ドキュメントを削除する
cblite select [N1QL] [N1QL]構文を使用してクエリを実行する
cblite serve (初歩的な)RESTAPIリスナーを開始する

インタラクティブモード

インタラクティブモードでは、データベースパスを指定して実行後、インタラクティブにサブコマンドの入力を求められます。

quitを入力するか、Ctrl-Dを押して終了します。

以下は、実行例です。

$ cblite travel-sample.cblite2
Opened read-only database travel-sample.cblite2/
(cblite) ls -l --limit 5
Document ID             Rev ID     Flags   Seq     Size
airline_10              1-d70614ae ---       1     0.1K
airline_10123           1-091f80f6 ---       2     0.1K
airline_10226           1-928c43f4 ---       3     0.1K
airline_10642           1-5cb6252c ---       4     0.1K
airline_10748           1-630b0443 ---       5     0.1K
(Stopping after 5 docs)
(cblite) quit
$

グローバルフラグ

これらのフラグは cbliteの直後に指定します。

フラグ 効果
--color ANSIカラーを有効にします(または環境変数 CLICOLORを設定します)。
--create パスが存在しない場合は、新しいデータベースを作成します。データベースを書き込み可能モードで開きます。
--encrypted 暗号化されたデータベースを開きます。パスワード/キーの入力が求められます。(インタラクティブモードでは、データベースが暗号化されていることが検出されると、ツールは自動的にプロンプ​​トを表示します。)
--help ヘルプテキストを出力して終了します。
--version LiteCoreのバージョンを出力して、終了します。
--writeable データベースを書き込み可能モードで開き、 compact putなどのコマンドを使用できるようにします。

サブコマンド解説

注:最初の引数が「 -」で始まる場合、それはフラグとして誤って解釈されます。これを回避するには、その前に空のフラグ引数「 --」を置きます。

cat

ドキュメントIDがパターンに一致するすべてのドキュメントのJSON本文を表示します。

cblite cat [flags] databasepath DOCID [DOCID ...]

cat [flags] DOCID [DOCID ...]

(DOCIDには、シェルスタイルのワイルドカード *が含めることができます)

フラグ 効果
--key KEY 単一のキー/値のみを表示する(複数回使用できます)
--rev リビジョンIDを表示する
--raw JSONを出力する
--json5 JSON5構文で出力する(dictキーを引用符で囲まない)

check

データベースの整合性チェックを実行します。

cblite check databasepath

check

cp(別名export, import, push, pull)

データベースをコピーするか、JSONをインポートまたはエクスポートするか、複製します。

cblite cp [flags] source destination

_source_および_destination_は、データベースパス、レプリケーションURL、またはJSONファイルパスにすることができます。それらの1つは、 * .cblite2で終わるデータベースパスである必要があります。もう1つは、次のいずれかになります。

  • *.cblite2: ローカルデータベースファイルをコピーし、新しいUUIDをターゲットに割り当てます
  • ws://*: ネットワークレプリケーション
  • *.json: JSONファイルをインポート/エクスポートします(1行に1つのドキュメント)
  • * /: JSONファイル(ドキュメントごとに1ファイル)の含まれるディレクトリをインポート/エクスポートします

--replicateフラグを使用して、ローカルからローカルへのコピーにレプリケータを使用させることができます。コマンドが pushまたは pullとして呼び出された場合、このフラグは暗黙的に設定されます。

cp [flags] destination

インタラクティブモードでは、データベースパスはすでにわかっているため、ソースとして使用され、 cpは宛先引数のみを取ります。オプションで、コマンド pushまたは exportを呼び出すことができます。または、インタラクティブモードで同義語 pullまたは importを使用する場合、指定したパラメーターは_source_として扱われ、現在のデータベースは_destination_です。

フラグ 効果
--bidi 双方向(プッシュ+プル)レプリケーション
-cacert file file(PEMまたはDER形式)のX.509証明書を使用して、サーバーのTLS証明書を検証する。サーバーに自己署名証明書がある場合に必要です。
--careful エラーが発生した場合は中止する。
-cert file TLSクライアント認証には、file(PEMまたはDER形式)のX.509証明書を使用する。--keyが必要です。
--continuous 継続的レプリケーションを実行します
--existingまたは -x _destination_がまだ存在しない場合は失敗します。
--jsonid property ドキュメントIDに使用するJSONプロパティを指定します。
--key file TLSクライアント認証に_file_の秘密鍵を使用します。--certが必要です。
--limit n _n_個のドキュメントの後で停止する。(レプリケーターはこれを無視します)
--replicate ローカルからローカルにコピーするときにレプリケーターの使用を強制する。
--user name [:password ] リモートサーバーの資格情報。(パスワードが指定されていない場合、ツールはパスワードの入力を求めるプロンプトを表示します。)
--verboseまたは -v 進捗情報をログに記録する。

--jsonidは次のように機能します。

  • _source_がJSONの場合、これはプロパティ名/パスであり、その値はドキュメントIDとして使用されます。(省略した場合、ドキュメントにはUUIDが与えられます。)
  • _destination_がJSONの場合、これはJSONに追加されるプロパティ名であり、その値はドキュメントのIDです。(このフラグを省略すると、値はデフォルトで _idになります。)

help

すべてのコマンドのリスト、または特定のコマンドの詳細を表示します。

cblite help [サブコマンド名]

help [サブコマンド名]

info(別名file)

ドキュメント数や最新のシーケンス番号など、データベースに関する情報を表示します。
サブサブコマンド indexesを使用すると、代わりにデータベース内のすべてのインデックスが一覧表示されます。
サブサブコマンド indexの後にインデックス名を付けると、代わりにそのインデックスの内容全体(キーと値)がダンプされます。

cblite info databasepath
cblite info databasepath indexes
cblite info databasepath index indexname

info info indexes info index indexname

logcat

Couchbase Liteバイナリログファイルを読み取り、stdoutと同等のプレーンテキストを書き込みます。

複数のファイルが、時系列で並べ替えられた行とともにマージされます。

ディレクトリパスを指定すると、そのディレクトリ内のすべての .cbllogファイルが読み取られます。

cblite logcat [logfile] [logfile ...]
cblite logcat _ [directory] _

logcat [logfile] [logfile ...]
logcat [directory]

フラグ 効果
--csv RFC4180に従って、CSV形式で出力する。
--full 完全なログ(すべてのレベル)が使用可能になると、最初に出力が開始されます。アクティブでないログレベルはより長い履歴を保持するため、これは多くの場合便利です。したがって、すべてがログに記録されると、出力の開始は古いエラーと警告に他なりません。
--out filepath stdoutではなくファイルに出力を書き込みます。

ls

データベース内のドキュメントのIDを一覧表示します。

cblite ls [flags] databasepath [PATTERN]

ls [flags] [PATTERN]

フラグ 効果
-l 長い形式(1行に1つのドキュメント、メタデータ付き)
--offset n 最初の_n_ドキュメントをスキップ
--limit n _n_docsの後に停止する
--desc 降順
--seq docIDではなくシーケンスで並べ替え
--del 削除されたドキュメントを含める
--conf 競合するドキュメントのみを含める
--body ドキュメント本文を表示する
--pretty きれいに印刷されたドキュメント本文( --bodyを意味します)
--json5 JSON5構文、つまり引用符で囲まれていないdictキー( --bodyを意味します)

(PATTERNは、シェルスタイルのワイルドカード *を使用してdocIDを照合するためのオプションのパターンです)

put

ドキュメントを作成または更新します。

cblite put [flags] databasepath DOCID "JSON"

put [flags] DOCID "JSON"

フラグ 効果
--create ドキュメントを作成する。ドキュメントが存在する場合は失敗します。
--update 既存のドキュメントを更新する。ドキュメントが存在しない場合は失敗します。

注:対話モードでは、 cblite --writeableまたは --createフラグで呼び出されない限り、このコマンドは失敗します。

query

JSON構文を使用したデータベースクエリを実行します。

cblite query [flags] databasepath "query"

query [flags] query

フラグ 効果
--offset n 最初の_n_行をスキップする
--limit n _n_行の後で停止する

_query_は、JSONクエリスキーマ(下記URL参照)に従う必要があります。

reindex

インデックスを再構築します。再構築後のインデックスは、時間の経過とともに段階的に変更されてきたインデックスよりも効率的な構造になる可能性があるため、クエリのパフォーマンスが向上する可能性があります。

これは、アプリケーション内に埋め込むデータベースを準備する際の最終ステップとして実行する価値があります。

cblite reindex databasepath

reindex

注:対話モードでは、 cblite --writeableまたは --createフラグで呼び出されない限り、このコマンドは失敗します。

revs

ドキュメントの改訂履歴を表示します。

cblite revs databasepath DOCID

revs DOCID

rm

ドキュメントを削除します。

cblite rm databasepath DOCID

rm DOCID

注:対話モードでは、 cblite--writeableまたは --createフラグで呼び出されない限り、このコマンドは失敗します。

select

N1QL構文を使用してデータベースを照会します。

cblite select [flags] _databasepath _" query"

select [flags] query

フラグ 効果
--ofset n 最初の_n_行をスキップする
--limit n _n_行の後で停止

_query_の記述のベースは、N1QLの SELECTクエリですが、キーワード SELECTはコマンド名としてすでに指定されているため、これを除きます。また、キースペース(データベース)が1つしかないため、 FROM句も省略します。

serve

REST APIに応答する簡易的なHTTPサーバーを実行します。REST APIのサブセットのみが実装されています。

cblite serve [flags] databasepath

serve [flags]

フラグ 効果
--port n TCPポート番号を設定する(デフォルトは59840)
--readonly REST呼び出しによるデータベースの変更を防止する
--verboseまたは-v リクエストをログに記録する。

実行例

$  cblite file travel-sample.cblite2
Database:   travel-sample.cblite2/
Total size: 34MB
Documents:  31591, last sequence 31591

$  cblite ls -l --limit 10 travel-sample.cblite2
Document ID     Rev ID     Flags   Seq     Size
airline_10      1-d70614ae ---       1     0.1K
airline_10123   1-091f80f6 ---       2     0.1K
airline_10226   1-928c43f4 ---       3     0.1K
airline_10642   1-5cb6252c ---       4     0.1K
airline_10748   1-630b0443 ---       5     0.1K
airline_10765   1-e7999661 ---       6     0.1K
airline_109     1-bd546abb ---       7     0.1K
airline_112     1-ca955c69 ---       8     0.1K
airline_1191    1-28dbba6e ---       9     0.1K
airline_1203    1-045b6947 ---      10     0.1K
(Stopping after 10 docs)

$  cblite travel-sample.cblite2
(cblite) query --limit 10 ["=", [".type"], "airline"]
["_id": "airline_10"]
["_id": "airline_10123"]
["_id": "airline_10226"]
["_id": "airline_10642"]
["_id": "airline_10748"]
["_id": "airline_10765"]
["_id": "airline_109"]
["_id": "airline_112"]
["_id": "airline_1191"]
["_id": "airline_1203"]
(Limit was 10 rows)
(cblite) query --limit 10 '{WHAT: [[".name"]], WHERE:  ["=", [".type"], "airline"], ORDER_BY: [[".name"]]}'
["40-Mile Air"]
["AD Aviation"]
["ATA Airlines"]
["Access Air"]
["Aigle Azur"]
["Air Austral"]
["Air Caledonie International"]
["Air Caraïbes"]
["Air Cargo Carriers"]
["Air Cudlua"]
(Limit was 10 rows)
(cblite) ^D
$

関連情報

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?