Skip to main content

データベースのインポート

[詳細設定] [プラミング] ファイナライズされていないデータベースを、別のファイナライズされていないデータベースにインポートします。

この機能を使用できるユーザーについて

GitHub CodeQL は、インストール時にユーザーごとにライセンスされます。 CodeQL は、ライセンスの制限の下で特定のタスクでのみ使用できます。 詳しくは、「CodeQL CLI について」を参照してください。

GitHub Advanced Security ライセンスがある場合は、CodeQL を使用して、自動分析、継続的インテグレーション、継続的デリバリーを行うことができます。 詳しくは、「GitHub Advanced Security について」を参照してください。

この記事の内容

このコンテンツでは、CodeQL CLI の最新リリースについて説明します。 このリリースについて詳しくは、 https://github.com/github/codeql-cli-binaries/releases をご覧ください。

以前のリリースの、このコマンドで使えるオプションを詳しく確認するには、ターミナルで --help オプションを指定してコマンドを実行してください。

構文

Shell
codeql database import [--dbscheme=<file>] [--threads=<num>] [--ram=<MB>] <options>... -- <database> <additionalDbs>...

説明

[詳細設定] [プラミング] ファイナライズされていないデータベースを、別のファイナライズされていないデータベースにインポートします。

このコマンドの結果、ターゲット データベース ("最初" の引数の 1 つ) は、渡された他のすべてのデータベースのデータで拡張されます。__ 特に、他のデータベースの TRAP ファイルがインポートされ、その中のソースがコピーされます。

このコマンドによって、望ましい効果が得られるとは限らないことにご注意ください。 特に、結果のデータベースでは、結合された部分データベース間のデータフローが正しく追跡されない場合があります。 これは、結果として得られる最終的なデータベースが意味を持つよう、ビルドの分離方法に特別な注意が払われている、分散ビルド システムを含む特定の高度なシナリオでのみ使用することを目的としています。

[オプション]

主なオプション

<database>

[必須] 構築中の CodeQL データベースへのパス。 これは、codeql database init を使って抽出するために準備されている必要があります。

--db-cluster オプションを指定した場合、これはデータベース自体ではなく、データベースを "含む" ディレクトリであり、これらのデータベースはすべてまとめて処理されます。__

<additionalDbs>...

[必須] 最初のデータベースにインポートする必要がある未完成のデータベースへのパス。

--db-cluster オプションが指定されている場合、これらは個々の CodeQL データベースではなくデータベース クラスターであることが期待されます。

--[no-]db-cluster

コマンド ラインで指定されたディレクトリがデータベース自体ではなく、構築中の 1 つ以上のデータベースを "含む" ディレクトリであることを示します。__ これらのデータベースはまとめて処理されます。

TRAP インポート操作を制御するオプション

-S, --dbscheme=<file>

[詳細設定] TRAP ファイルが準拠していると見なされる自動検出された dbscheme 定義をオーバーライドします。 通常、これはデータベースの抽出元から取得されます。

-j, --threads=<num>

インポート操作には、この多くのスレッドを使ってください。

既定値は 1 です。 0 を渡して、マシン上のコアごとに 1 つのスレッドを使ったり、N を渡して、N 個のコアを未使用のままにしたりすることができます (ただし、その場合でも、少なくとも 1 つのスレッドが使われます)。

-M, --ram=<MB>

インポート操作には、この量のメモリを使ってください。

インポートされた TRAP をチェックするためのオプション

--[no-]check-undefined-labels

[詳細設定] 未定義のラベルのエラーを報告します。

--[no-]check-unused-labels

[詳細設定] 未使用のラベルのエラーを報告します。

--[no-]check-repeated-labels

[詳細設定] 繰り返しラベルのエラーを報告します。

--[no-]check-redefined-labels

[詳細設定] 再定義されたラベルのエラーを報告します。

--[no-]check-use-before-definition

[詳細設定] 定義される前に使われたラベルのエラーを報告します。

--[no-]fail-on-trap-errors

[詳細設定] トラップのインポート中にエラーが発生した場合、0 以外で終了します。

--[no-]include-location-in-star

[詳細設定] 元の TRAP ファイル内の場所をエンコードするエンティティ ID を構築します。 TRAP ジェネレーターのデバッグに役立つ場合がありますが、データセット内で多くの領域を占有します。

--[no-]linkage-aware-import

[詳細設定] codeql データセットのインポートがリンケージ対応 (既定) かどうかを制御します。 データベース作成のこの部分で消費されるメモリが多すぎるプロジェクトでは、このオプションを無効にすると、データベースの完全性が犠牲になりますが、進行しやすくなる場合があります。

v2.15.3 以降で使用できます。

共通オプション

-h, --help

このヘルプ テキストを表示します。

-J=<opt>

[詳細設定] コマンドを実行している JVM にオプションを指定します

(スペースを含むオプションは正しく処理されないことに注意してください)。

-v, --verbose

出力される進行状況メッセージの数を段階的に増やします。

-q, --quiet

出力される進行状況メッセージの数を段階的に減らします。

--verbosity=<level>

[詳細設定] 詳細レベルを、errors、warnings、progress、progress+、progress++、progress+++ のいずれかに明示的に設定します。 -v-q がオーバーライドされます。

--logdir=<dir>

[詳細設定] タイムスタンプと実行中のサブコマンドの名前を含む生成された名前を使用して、指定されたディレクトリ内の 1 つまたは複数のファイルに詳細なログを書き込みます

(完全に制御できる名前でログ ファイルを書き込むには、代わりに --log-to-stderr を指定し、必要に応じて stderr をリダイレクトします)。

--common-caches=<dir>

[[詳細設定] ダウンロードした QL パックやコンパイル済みクエリ プランなど、CLI の複数の実行間に保持される、ディスク上でキャッシュされたデータの場所を制御します。 明示的に設定されない場合、既定ではユーザーのホーム ディレクトリに名前が付けられた .codeql ディレクトリになります。まだ存在しない場合は作成されます。

v2.15.2 以降で使用できます。