Skip to main content

数据库导入

[高级] [Plumbing] 将未完成的数据库导入另一个未完成的数据库。

Who can use this feature?

GitHub CodeQL 在安装后按用户授权。 根据许可证限制,只能将 CodeQL 用于某些任务。 有关详细信息,请参阅“关于 CodeQL CLI”。

如果你有 GitHub Advanced Security 许可证,则可以使用 CodeQL 进行自动分析、持续集成和持续交付。 有关详细信息,请参阅“关于 GitHub 高级安全性”。

本文内容

此内容描述了 CodeQL CLI 的最新版本。 有关此版本的详细信息,请参阅 https://github.com/github/codeql-cli-binaries/releases

若要查看早期版本中此命令可用选项的详细信息,请在终端中使用 --help 选项运行命令。

摘要

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

说明

[高级] [Plumbing] 将未完成的数据库导入另一个未完成的数据库。

此命令的结果是,目标数据库(第一个参数中的数据库)将使用传递的所有其他数据库中的数据进行扩充。 具体而言,将导入其他数据库中的 TRAP 文件,并复制其中的源。

请注意,在大多数情况下,此命令可能不会产生所需的效果。 具体而言,生成的数据库可能无法正确跟踪合并的部分数据库之间的数据流。 它仅用于涉及分布式生成系统的某些高级方案,在这些方案中,已特别注意如何分离生成,以确保生成的最终数据库有意义。

选项

主要选项

<database>

[必需] 正在构建的 CodeQL 数据库的路径。 必须准备好此选项,以便使用 codeql database init 进行提取。

如果提供了 --db-cluster 选项,那么这不是数据库本身,而是一个包含数据库的目录,所有这些数据库将一起处理。

<additionalDbs>...

[必需] 应导入到第一个数据库中的未完成数据库的路径。

如果提供了 --db-cluster 选项,则预计这些内容将是数据库群集,而不是单个 CodeQL 数据库。

--[no-]db-cluster

指示命令行上给定的目录不是数据库本身,而是包含一个或多个正在构建的数据库的目录。 这些数据库将一起处理。

用于控制 TRAP 导入操作的选项

-S, --dbscheme=<file>

[高级] 重写假定 TRAP 文件要遵循的自动检测的 dbscheme 定义。 通常,这是从数据库的提取程序中获取的。

-j, --threads=<num>

使用此数量的线程进行导入操作。

默认值为 1。 可以传递 0 以在计算机上对每个核心都使用一个线程,也可以传递 -N 以将 N 个核心保留为未使用状态(仍至少使用一个线程的情况除外) 。

-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

[高级] 如果在 trap 导入期间发生错误,则退出非零。

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

[高级] 构造实体 ID,这些 ID 对它们在 TRAP 文件中的源位置进行编码。 可能对调试 TRAP 生成器非常有用,但会在数据集中占用大量空间。

--[no-]linkage-aware-import

[高级] 控制 codeql 数据集导入是否具有链接感知(默认值)__。 对于在数据库创建这一部分占用过多内存的项目,禁用此选项可能有助于其运行,但会牺牲数据库的完整性。

v2.15.3 起可用。

常用选项

-h, --help

显示此帮助文本。

-J=<opt>

[高级] 为运行命令的 JVM 提供选项。

(请注意,无法正确处理包含空格的选项。)

-v, --verbose

以增量方式增加输出的进度消息数。

-q, --quiet

以增量方式减少输出的进度消息数。

--verbosity=<level>

[高级] 将详细级别显式设置为“错误”、“警告”、“进度”、“进度+”、“进度++”、“进度+++”之一。 重写 -v-q

--logdir=<dir>

[高级] 将详细日志写入给定目录中的一个或多个文件,其中生成的名称包括时间戳和正在运行的子命令的名称。

(若要使用可以完全控制的名称编写日志文件,请根据需要提供 --log-to-stderr 并重定向 stderr。)

--common-caches=<dir>

[高级] 控制磁盘上缓存数据的位置,此位置会在多次运行 CLI(例如下载的 QL 包和已编译查询计划)期间暂留。 如果未明确设置,则默认为用户主目录中名为 .codeql 的目录;如果尚不存在,则会创建该目录。

v2.15.2 起可用。