{"meta":{"title":"создание базы данных","intro":"Создайте базу данных CodeQL для исходного дерева, которое можно проанализировать с помощью одного из продуктов CodeQL.","product":"Безопасность и качество кода","breadcrumbs":[{"href":"/ru/code-security","title":"Безопасность и качество кода"},{"href":"/ru/code-security/reference","title":"Reference"},{"href":"/ru/code-security/reference/code-scanning","title":"Проверка кода"},{"href":"/ru/code-security/reference/code-scanning/codeql","title":"CodeQL"},{"href":"/ru/code-security/reference/code-scanning/codeql/codeql-cli-manual","title":"Руководство по cli CodeQL"},{"href":"/ru/code-security/reference/code-scanning/codeql/codeql-cli-manual/database-create","title":"создание базы данных"}],"documentType":"article"},"body":"# создание базы данных\n\nСоздайте базу данных CodeQL для исходного дерева, которое можно проанализировать с помощью одного из продуктов CodeQL.\n\n> \\[!NOTE]\n> Это содержимое описывает последний выпуск данных CodeQL CLI. Дополнительные сведения об этом выпуске см. в статье <https://github.com/github/codeql-cli-binaries/releases>.\n>\n> Чтобы просмотреть сведения о параметрах, доступных для этой команды в предыдущем выпуске, выполните команду с <span style=\"white-space: nowrap;\">`--help`</span> параметром в терминале.\n\n## Synopsis\n\n```shell copy\ncodeql database create [--language=<lang>[,<lang>...]] [--github-auth-stdin] [--github-url=<url>] [--source-root=<dir>] [--threads=<num>] [--ram=<MB>] [--command=<command>] [--extractor-option=<extractor-option-name=value>] <options>... -- <database>\n```\n\n## Description\n\nСоздайте базу данных CodeQL для исходного дерева, которое можно проанализировать с помощью одного из продуктов CodeQL.\n\n## Options\n\n### Основные параметры\n\n#### `<database>`\n\n```\n          \\[Обязательный] Путь к создаваемой базе данных CodeQL. Этот каталог будет создан и _не_ должен существовать (но его родительский каталог должен).\n\n          `--db-cluster` Если этот параметр задан, это не сама база данных, а каталог, который будет _содержать_ базы данных для нескольких языков, созданных из одного корневого каталога источника.\n```\n\nВажно, чтобы этот каталог не был в расположении, с которым будет вмешиваться процесс сборки. Например, `target` каталог проекта Maven не будет подходящим выбором.\n\n#### `--[no-]overwrite`\n\n```\n          \\[Дополнительно] Если база данных уже существует, удалите ее и перейдите к этой команде вместо сбоя. Если каталог существует, но он не выглядит как база данных, возникает ошибка.\n```\n\n#### `--[no-]force-overwrite`\n\n```\n          \\[Дополнительно] Если база данных уже существует, удалите ее, даже если она не выглядит как база данных и не выполняет эту команду, а не завершается ошибкой. Этот параметр следует использовать с осторожностью, так как он может рекурсивно удалить весь каталог базы данных.\n```\n\n#### `--codescanning-config=<file>`\n\n```\n          \\[Дополнительно] Чтение файла конфигурации сканирования кода, указывающего параметры создания баз данных CodeQL и запросов для выполнения в последующих шагах. Дополнительные сведения о формате этого файла конфигурации см. в [разделе AUTOTITLE](/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning). Чтобы выполнить запросы из этого файла на следующем шаге, вызовите [анализ](/code-security/reference/code-scanning/codeql/codeql-cli-manual/database-analyze) базы данных codeql без каких-либо других запросов.\n```\n\n#### `--[no-]db-cluster`\n\nВместо создания отдельной базы данных создайте кластер баз данных для разных языков, каждый из которых является подкаталогом каталога, заданного в командной строке.\n\n#### `-l, --language=<lang>[,<lang>...]`\n\nЯзык, который будет использоваться для анализа новой базы данных.\n\nИспользуйте [кодеql resolve language](/ru/code-security/reference/code-scanning/codeql/codeql-cli-manual/resolve-languages) , чтобы получить список подключаемых средств извлечения языка, найденных в пути поиска.\n\n```\n          `--db-cluster` Если этот параметр задан, это может отображаться несколько раз или значение может быть разделенным запятыми списком языков.\n```\n\nЕсли этот параметр опущен, а исходный корень, который анализируется, является извлечением репозитория GitHub, cli CodeQL вызовет API GitHub для автоматического определения языков для анализа. Обратите внимание, что для этого необходимо предоставить маркер GitHub PAT в переменной среды GITHUB\\_TOKEN или через стандартные входные данные с помощью `--github-auth-stdin` этого параметра.\n\n#### `--build-mode=<mode>`\n\nРежим сборки, который будет использоваться для создания базы данных.\n\nВыберите режим сборки на основе языка, который вы анализируете:\n\n```\n          `none`: база данных будет создана без создания корневого каталога источника.\n```\n\nДоступно для C#, Java, JavaScript/TypeScript, Python и Ruby.\n\n```\n          `autobuild`: база данных будет создана путем автоматической сборки корневого каталога источника. Доступно для C/C++, C#, Go, Java/Kotlin и Swift.\n\n          `manual`: база данных будет создана путем создания корневого каталога источника с помощью команды сборки вручную. Доступно для C/C++, C#, Go, Java/Kotlin и Swift.\n```\n\nПри создании базы данных с `--command`помощью не требуется дополнительно указывать \"---build-mode\" вручную.\n\nДоступно с момента `v2.16.4`.\n\n#### `-s, --source-root=<dir>`\n\n```\n          \\[По умолчанию: .] Корневой каталог исходного кода. Во многих случаях это будет корневая папка для вырезки. Файлы в нем считаются основными исходными файлами для этой базы данных. В некоторых выходных форматах файлы будут ссылаться на относительный путь из этого каталога.\n```\n\n#### `-j, --threads=<num>`\n\nИспользуйте это множество потоков для операции импорта и передайте его в качестве указания любой вызываемой команды сборки.\n\nЗначение по умолчанию — 1. Вы можете передать 0 для использования одного потока на ядро на компьютере или -*N, чтобы оставить *неиспользуемые* ядра N* (за исключением того, что по-прежнему используется хотя бы один поток).\n\n#### `-M, --ram=<MB>`\n\nИспользуйте эту большую память для операции импорта и передайте ее в качестве указания любой вызываемой команды сборки.\n\n#### `-c, --command=<command>`\n\nДля скомпилированных языков команды сборки, которые вызывают компилятора в исходном коде для анализа. Эти команды будут выполняться в среде инструментирования, которая позволяет анализировать созданный код и (в некоторых случаях) стандартные библиотеки.\n\nЕсли команда сборки не указана, команда пытается автоматически определить, как создать исходное дерево на основе эвристики из выбранного языкового пакета.\n\nУбедитесь, что для некоторых сочетаний нескольких языков *требуется* указать явную команду сборки.\n\n#### `--no-cleanup`\n\n```\n          \\[Дополнительно] Отключить очистку всех баз данных после завершения. Полезно для отладки.\n```\n\n#### `--no-pre-finalize`\n\n```\n          \\[Дополнительно] Пропустить любой скрипт предварительного завершения, указанный активным методом извлечения CodeQL.\n```\n\n#### `--[no-]skip-empty`\n\n```\n          \\[Дополнительно] Выводит предупреждение вместо сбоя, если база данных пуста, так как во время сборки не отображается исходный код. Пустая база данных останется неопределенной.\n```\n\n#### `--[no-]linkage-aware-import`\n\n```\n          \\[Дополнительно] Определяет, поддерживается ли [импорт](/code-security/reference/code-scanning/codeql/codeql-cli-manual/dataset-import) набора данных codeql с учетом _компоновки (по умолчанию)._ В проектах, где эта часть создания базы данных потребляет слишком много памяти, отключение этого параметра может помочь им выполняться за счет полноты базы данных.\n```\n\nДоступно с момента `v2.15.3`.\n\n### Базовые параметры вычисления\n\n#### `--[no-]calculate-baseline`\n\n```\n          \\[Дополнительно] Вычислите базовые сведения о анализируемом коде и добавьте его в базу данных. По умолчанию этот параметр включен, если корневой каталог источника не является корнем файловой системы. Этот флаг можно использовать для отключения или принудительного включения поведения даже в корне файловой системы.\n```\n\n#### `--[no-]sublanguage-file-coverage`\n\n```\n          \\[GitHub.com и GitHub Enterprise Server версии 3.12.0+ используйте сведения о охвате вложенных файлов. Это вычисляет, отображает и экспортирует отдельные сведения о охвате файлов для языков, которые совместно используют средство извлечения CodeQL, такие как C и C++, Java и Kotlin, и JavaScript и TypeScript.\n```\n\nДоступно с момента `v2.15.2`.\n\n### Параметры выбора средства извлечения\n\n#### `--search-path=<dir>[:<dir>...]`\n\nСписок каталогов, в которых можно найти пакеты средств извлечения. Каталоги могут быть пакетами средств извлечения сами или каталоги, содержащие извлекатели в качестве непосредственных подкаталогов.\n\nЕсли путь содержит несколько деревьев каталогов, их порядок определяет приоритет между ними: если целевой язык совпадает с несколькими деревьями каталогов, то один из первых выигрывает.\n\nСредства извлечения, упакованные с цепочкой инструментов CodeQL, всегда будут найдены, но если вам нужно использовать отдельные распределенные извлекатели, необходимо предоставить этот параметр (или, еще лучше, настроить `--search-path` в файле конфигурации для каждого пользователя).\n\n(Примечание. В Windows разделитель путей имеет значение `;`).\n\n### Параметры настройки вызова API GitHub для автоматического обнаружения языков.\n\n#### `-a, --github-auth-stdin`\n\nПримите маркер GitHub Apps или личный маркер доступа с помощью стандартных входных данных.\n\nЭто переопределяет переменную среды токена GITHUB\\_.\n\n#### `-g, --github-url=<url>`\n\nURL-адрес используемого экземпляра GitHub. Если опущено, интерфейс командной строки попытается выполнить автоматическое определение этого из пути извлечения и если это невозможно по умолчанию <https://github.com/>\n\n### Параметры настройки диспетчера пакетов.\n\n#### `--registries-auth-stdin`\n\nПроверка подлинности в реестрах контейнеров GitHub Enterprise Server путем передачи \\<registry\\_url>=\\<token> разделенного запятыми списка пар.\n\nНапример, можно передать `https://containers.GHEHOSTNAME1/v2/=TOKEN1,https://containers.GHEHOSTNAME2/v2/=TOKEN2`\nдля проверки подлинности на двух экземплярах GitHub Enterprise Server.\n\nПри этом переопределяются переменные среды маркера токена CODEQL\\_И\\_AUTH и GITHUB\\_. Если вам нужно выполнить проверку подлинности только в реестре контейнеров github.com, можно вместо этого выполнить проверку подлинности с помощью более `--github-auth-stdin` простого параметра.\n\n### Параметры очистки набора данных низкого уровня\n\n#### `--max-disk-cache=<MB>`\n\nЗадайте максимальное количество места, которое может использовать кэш диска для промежуточных результатов запроса.\n\nЕсли этот размер не настроен явным образом, вычислитель попытается использовать \"разумное\" пространство кэша на основе размера набора данных и сложности запросов. Явно устанавливая более высокий предел, чем это использование по умолчанию, позволит включить дополнительные кэширования, которые могут ускорить последующие запросы.\n\n#### `--min-disk-free=<MB>`\n\n```\n          \\[Дополнительно] Задайте целевой объем свободного места в файловой системе.\n```\n\nЕсли `--max-disk-cache` это не задано, средство оценки попытается ограничить использование кэша дисков, если свободное место в файловой системе снижается ниже этого значения.\n\n#### `--min-disk-free-pct=<pct>`\n\n```\n          \\[Дополнительно] Задайте целевую долю свободного места в файловой системе.\n```\n\nЕсли `--max-disk-cache` это не задано, средство оценки попытается ограничить использование кэша дисков, если свободное место в файловой системе снижается ниже этого процента.\n\n#### `--cache-cleanup=<mode>`\n\nВыберите, как агрессивно обрезать кэш. В число вариантов входят следующие варианты:\n\n```\n          `clear`: удалите весь кэш, обрезая состояние недавно извлеченного набора данных.\n\n          `trim`\n          _(по умолчанию)_: обрезать все, кроме явно кэшированных предикатов.\n\n          `fit`: просто убедитесь, что определенные ограничения размера кэша дисков наблюдаются, удаляя столько промежуточных, сколько необходимо.\n\n          `overlay`: обрезка только данных, которые будут полезны при оценке наложения.\n```\n\n#### `--cleanup-upgrade-backups`\n\nУдалите все каталоги резервных копий из-за обновлений базы данных.\n\n### Параметры трассировки\n\n#### `--no-tracing`\n\n```\n          \\[Дополнительно] Не отслеживайте указанную команду, вместо этого используйте ее для создания всех необходимых данных напрямую.\n```\n\n#### `--extra-tracing-config=<tracing-config.lua>`\n\n```\n          \\[Дополнительно] Путь к файлу конфигурации трассировки. Его можно использовать для изменения поведения трассировщика сборки. Его можно использовать для выбора процессов компилятора, которые выполняются в рамках команды сборки, и активировать выполнение других средств. Средства извлечения предоставляют файлы конфигурации трассировщика по умолчанию, которые должны работать в большинстве случаев.\n```\n\n### Параметры настройки команды сборки\n\n#### `--working-dir=<dir>`\n\n```\n          \\[Дополнительно] Каталог, в котором должна выполняться указанная команда. Если этот аргумент не указан, команда выполняется в значении, переданном `--source-root` в создание базы данных codeql, если она существует. Если аргумент не `--source-root` указан, команда выполняется в текущем рабочем каталоге.\n```\n\n#### `--no-run-unnecessary-builds`\n\n```\n          \\[Дополнительно] Выполните только указанные команды сборки, если в базе данных в процессе сборки используется средство извлечения, зависящее от трассировки процесса сборки.\n```\n\nЕсли этот параметр не задан, команда будет выполнена даже в том случае, если CodeQL не нужен, предположим, что вам нужны побочные эффекты по другим причинам.\n\n### Параметры управления поведением средства извлечения\n\n#### `-O, --extractor-option=<extractor-option-name=value>`\n\nЗадайте параметры для средств извлечения CodeQL.\n`extractor-option-name` должен иметь имя средства извлечения\\_формы name.group1.group2.option\\_или имя group1.group2.option\\_. Если `extractor_option_name` начинается с имени средства извлечения, указанный метод извлечения должен объявить имя option group1.group2.option\\_. В противном случае любой средство извлечения, объявляющее имя option group1.group2.option\\_, будет иметь набор параметров.\n`value` может быть любой строкой, которая не содержит новую строку.\n\nЭтот параметр командной строки можно использовать многократно для задания нескольких параметров извлечения. Если вы предоставляете несколько значений для одного и того же параметра извлечения, поведение зависит от типа, который ожидает параметр средства извлечения. Строковые параметры будут использовать последнее указанное значение. Параметры массива будут использовать все предоставленные значения в порядке. Параметры средства извлечения, указанные с помощью этого параметра командной строки, обрабатываются после использования `--extractor-options-file`параметров средства извлечения.\n\nПри передаче [в базу данных codeql инициализации](/ru/code-security/reference/code-scanning/codeql/codeql-cli-manual/database-init) или `codeql database begin-tracing`параметры будут применяться только к среде косвенной трассировки. Если рабочий процесс также вызывает [команду](/ru/code-security/reference/code-scanning/codeql/codeql-cli-manual/database-trace-command) трассировки базы данных codeql, то при желании также необходимо передать параметры.\n\nДополнительные <https://codeql.github.com/docs/codeql-cli/extractor-options> сведения о параметрах средства извлечения CodeQL, включая перечисление параметров, объявленных каждым извлекателем.\n\n#### `--extractor-options-file=<extractor-options-bundle-file>`\n\nУкажите файлы пакета параметров извлечения. Файл пакета параметров извлечения — это JSON-файл (расширение) или YAML-файл (расширение `.json``.yaml` или`.yml`), который задает параметры средства извлечения. Файл должен иметь ключ карты верхнего уровня \"extractor\" и, под ним, имена средств извлечения в качестве ключей карты второго уровня. Дополнительные уровни карт представляют вложенные группы средств извлечения, а параметры строки и массива — это записи сопоставления со значениями строк и массивов.\n\nФайлы пакета параметров извлечения считываются в указанном порядке.\nЕсли разные файлы пакета параметров извлечения указывают один и тот же параметр извлечения, поведение зависит от типа, который ожидает параметр средства извлечения. Строковые параметры будут использовать последнее указанное значение. Параметры массива будут использовать все предоставленные значения в порядке. Параметры средства извлечения, указанные с помощью этого параметра командной строки, обрабатываются перед использованием `--extractor-option`параметров средства извлечения.\n\nПри передаче [в базу данных codeql инициализации](/ru/code-security/reference/code-scanning/codeql/codeql-cli-manual/database-init) или `codeql database begin-tracing`параметры будут применяться только к среде косвенной трассировки. Если рабочий процесс также вызывает [команду](/ru/code-security/reference/code-scanning/codeql/codeql-cli-manual/database-trace-command) трассировки базы данных codeql, то при желании также необходимо передать параметры.\n\nДополнительные <https://codeql.github.com/docs/codeql-cli/extractor-options> сведения о параметрах средства извлечения CodeQL, включая перечисление параметров, объявленных каждым извлекателем.\n\n### Распространенные параметры\n\n#### `-h, --help`\n\nОтображение этого текста справки.\n\n#### `-J=<opt>`\n\n```\n          \\[Дополнительно] Укажите параметр JVM, выполняя команду.\n```\n\n(Убедитесь, что параметры, содержащие пробелы, не будут обрабатываться правильно.)\n\n#### `-v, --verbose`\n\nПостепенно увеличьте число отображаемых сообщений о ходе выполнения.\n\n#### `-q, --quiet`\n\nПостепенно уменьшайте количество отображаемых сообщений о ходе выполнения.\n\n#### `--verbosity=<level>`\n\n```\n          \\[Дополнительно] Явным образом задайте уровень детализации на одну из ошибок, предупреждений, хода выполнения, хода выполнения+, хода выполнения++, хода выполнения+++. Переопределяет `-v` и `-q`.\n```\n\n#### `--logdir=<dir>`\n\n```\n          \\[Дополнительно] Запись подробных журналов в один или несколько файлов в указанном каталоге с созданными именами, включающими метки времени и имя выполняющегося подкоманда.\n```\n\n(Чтобы записать файл журнала с именем, над которым у вас есть полный контроль, вместо этого предоставьте `--log-to-stderr` и перенаправите stderr по мере необходимости.)\n\n#### `--common-caches=<dir>`\n\n```\n          \\[Дополнительно] Управляет расположением кэшированных данных на диске, которые будут сохраняться между несколькими запусками интерфейса командной строки, такими как скачанные пакеты QL и скомпилированные планы запросов. Если этот параметр не задан явным образом, по умолчанию используется каталог с именем `.codeql` в домашнем каталоге пользователя; он будет создан, если он еще не существует.\n```\n\nДоступно с момента `v2.15.2`."}