{"meta":{"title":"инициализация базы данных","intro":"[Сантехника] Создайте пустую базу данных 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-init","title":"инициализация базы данных"}],"documentType":"article"},"body":"# инициализация базы данных\n\n\\[Сантехника] Создайте пустую базу данных 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 init --source-root=<dir> [--language=<lang>[,<lang>...]] [--github-auth-stdin] [--github-url=<url>] [--extractor-option=<extractor-option-name=value>] <options>... -- <database>\n```\n\n## Description\n\n```\n          \\[Сантехника] Создайте пустую базу данных CodeQL.\n```\n\nСоздайте структуру скелета для базы данных CodeQL, которая еще не имеет необработанного набора данных QL, но готова к выполнению шагов извлечения. После завершения этой команды выполните одну или несколько [команд трассировки](/ru/code-security/reference/code-scanning/codeql/codeql-cli-manual/database-trace-command) базы данных codeql, за которым [следует завершение](/ru/code-security/reference/code-scanning/codeql/codeql-cli-manual/database-finalize) базы данных codeql, чтобы подготовить базу данных для запроса.\n\n(Часть этого решения заключается в разрешении расположения соответствующего языкового пакета и хранения его в метаданных базы данных, таким образом, чтобы при каждой команде извлечения его не нужно было переопределено. Невозможно переключить извлекатели в середине операции извлечения.)\n\n## Options\n\n### Основные параметры\n\n#### `<database>`\n\n```\n          \\[Обязательный] Путь к создаваемой базе данных CodeQL. Этот каталог будет создан и _не_ должен существовать (но его родительский каталог должен).\n\n          `--db-cluster` Если этот параметр задан, это не сама база данных, а каталог, который будет _содержать_ базы данных для нескольких языков, созданных из одного корневого каталога источника.\n```\n\nВажно, чтобы этот каталог не был в расположении, с которым будет вмешиваться процесс сборки. Например, `target` каталог проекта Maven не будет подходящим выбором.\n\n#### `-s, --source-root=<dir>`\n\n```\n          \\[Обязательно] Корневой каталог исходного кода. Во многих случаях это будет корневая папка для вырезки. Файлы в нем считаются основными исходными файлами для этой базы данных. В некоторых выходных форматах файлы будут ссылаться на относительный путь из этого каталога.\n```\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#### `--[no-]allow-missing-source-root`\n\n```\n          \\[Дополнительно] Продолжить, даже если указанный корневой каталог источника не существует.\n```\n\n#### `--[no-]begin-tracing`\n\n```\n          \\[Дополнительно] Создайте некоторые скрипты, которые можно использовать для настройки \"косвенной трассировки сборки\", которая позволяет интегрироваться в существующие рабочие процессы сборки, если явная команда сборки недоступна. Сведения о том, когда и как использовать эту функцию, см. в нашей документации по [AUTOTITLE](/code-security/codeql-cli/getting-started-with-the-codeql-cli/preparing-your-code-for-codeql-analysis).\n```\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### Параметры настройки трассировки Windows\n\n#### `--trace-process-name=<process-name>`\n\n```\n          \\[Только Windows] При инициализации трассировки введите трассировщик в родительский процесс интерфейса командной строки CodeQL, имя которого соответствует этому аргументу. Если несколько родительских процессов имеют это имя, будет выбран один самый низкий в дереве обработки. Этот параметр переопределяется, поэтому при передаче обоих вариантов `--trace-process-level`будет использоваться только этот параметр.\n```\n\n#### `--trace-process-level=<process-level>`\n\n```\n          \\[Только Windows] При инициализации трассировки вставляет трассировку этим многим родителям выше текущего процесса с 0, соответствующим процессу, вызываемому cli CodeQL. Поведение интерфейса командной строки по умолчанию, если никакие аргументы не передаются, являются внедрением в родительский элемент вызывающего процесса с некоторыми особыми случаями для GitHub Actions и Azure Pipelines.\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#### `-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 инициализации или `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 инициализации или `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`."}