Skip to main content

Datenbankimport

[Erweitert] [Sanitär] Importiere nicht abgeschlossene Datenbanken in eine andere nicht definierte Datenbank.

Wer kann dieses Feature verwenden?

GitHub CodeQL wird nach der Installation auf Benutzerbasis lizenziert. Du kannst CodeQL nur für bestimmte Aufgaben unter den Lizenzeinschränkungen verwenden. Weitere Informationen findest du unter Informationen zur CodeQL-CLI.

Wenn du über eine GitHub Advanced Security-Lizenz verfügst, kannst du CodeQL für eine automatisierte Analyse sowie für Continuous Integration und Continuous Delivery verwenden. Weitere Informationen findest du unter Informationen zu GitHub Advanced Security.

In diesem Inhalt wird die neueste Version von CodeQL CLI beschrieben. Weitere Informationen zu diesem Thema findest du unter https://github.com/github/codeql-cli-binaries/releases.

Um Details zu den Optionen anzuzeigen, die für diesen Befehl in früheren Releases verfügbar sind, führe den Befehl mit der Option --help im Terminal aus.

Übersicht

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

Beschreibung

[Erweitert] [Sanitär] Importiere nicht abgeschlossene Datenbanken in eine andere nicht definierte Datenbank.

Das Ergebnis dieses Befehls ist, dass die Zieldatenbank (die im ersten Argument) mit den Daten aus allen anderen übergebenen Datenbanken ergänzt wird. Insbesondere werden TRAP-Dateien aus den anderen Datenbanken importiert und die darin enthaltenen Quellen kopiert.

Beachte, dass dieser Befehl in den meisten Fällen wahrscheinlich nicht die gewünschte Wirkung hat. Insbesondere kann die resultierende Datenbank den Dataflow zwischen den kombinierten Teildatenbanken nicht ordnungsgemäß nachverfolgen. Er ist nur für bestimmte erweiterte Szenarien mit verteilten Buildsystemen vorgesehen, in denen besondere Sorgfalt darauf gelegt wurde, wie der Build getrennt wurde. So soll sichergestellt werden, dass daraus eine sinnvolle, endgültige Datenbank resultiert.

Optionen

Primäre Optionen

<database>

[Obligatorisch] Pfad zur CodeQL-Datenbank, die sich im Aufbau befindet. Dieser muss für die Extraktion mit codeql database init vorbereitet sein.

Wenn die Option --db-cluster angegeben ist, handelt es sich nicht um eine Datenbank als solches, sondern um ein Verzeichnis, das Datenbanken enthält. Es werden dann alle diese Datenbanken zusammen verarbeitet.

<additionalDbs>...

[Obligatorisch] Pfade zu den nicht abgeschlossenen Datenbanken, die in die erste Datenbank importiert werden sollen.

Wenn die Option --db-cluster angegeben ist, wird erwartet, dass es sich dabei um Datenbankcluster und nicht um einzelne CodeQL-Datenbanken handelt.

--[no-]db-cluster

Gibt an, dass es sich bei dem in der Befehlszeile angegebenen Verzeichnis nicht um eine Datenbank als solches handelt, sondern um ein Verzeichnis, das eine oder mehrere Datenbanken enthält, die sich im Aufbau befinden. Diese Datenbanken werden zusammen verarbeitet.

Optionen zum Steuern des TRAP-Importvorgangs

-S, --dbscheme=<file>

[Erweitert] Überschreibe die automatisch erkannte dbscheme-Definition, die die TRAP-Dateien voraussichtlich befolgen werden. Normalerweise wird diese aus dem Extraktor der Datenbank übernommen.

-j, --threads=<num>

Dient zum Festlegen, wie viele Threads für den Importvorgang verwendet werden sollen.

Der Standardwert lautet 1. Du kannst 0 übergeben, um jeweils einen Thread pro Kern auf dem Computer zu verwenden, oder -N, um N Kerne ungenutzt zu lassen. (Es wird allerdings immer noch mindestens ein Thread verwendet.)

-M, --ram=<MB>

Verwende so viel Arbeitsspeicher für den Importvorgang.

Optionen zum Überprüfen importierter TRAP-Dateien

--[no-]check-undefined-labels

[Erweitert] Meldet Fehler für nicht definierte Bezeichnungen.

--[no-]check-unused-labels

[Erweitert] Meldet Fehler für nicht genutzte Bezeichnungen.

--[no-]check-repeated-labels

[Erweitert] Meldet Fehler für wiederholte Bezeichnungen.

--[no-]check-redefined-labels

[Erweitert] Meldet Fehler für neu definierte Bezeichnungen.

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

[Erweitert] Meldet Fehler für Bezeichnungen, die verwendet werden, bevor sie definiert wurden.

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

[Erweitert] Führt zu einer Beendigung ungleich null, wenn beim TRAP-Import ein Fehler auftritt.

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

[Erweitert] Erstellt Entitäts-IDs, die den Speicherort in der TRAP-Datei codieren, aus der sie stammen. Kann für das Debuggen von TRAP-Generatoren nützlich sein, nimmt aber viel Platz im Dataset ein.

--[no-]linkage-aware-import

[Erweitert] Steuert, ob der Import von Codeql-Datasets verknüpfungsfähig (Standard) ist oder nicht. Bei Projekten, bei denen dieser Teil der Datenbankerstellung zu viel Arbeitsspeicher verbraucht, kann die Deaktivierung dieser Option den Fortschritt auf Kosten der Vollständigkeit der Datenbank fördern.

Verfügbar seit v2.15.3.

Allgemeine Optionen

-h, --help

Zeigt diesen Hilfetext an.

-J=<opt>

[Erweitert] Dient zum Angeben einer Option für die JVM-Instanz, die den Befehl ausführt.

(Beachte, dass Optionen, die Leerzeichen enthalten, nicht ordnungsgemäß verarbeitet werden.)

-v, --verbose

Ermöglicht die inkrementelle Erhöhung der Anzahl ausgegebener Statusmeldungen.

-q, --quiet

Ermöglicht die inkrementelle Verringerung der Anzahl ausgegebener Statusmeldungen.

--verbosity=<level>

[Erweitert] Dient zum expliziten Festlegen des Ausführlichkeitsgrads auf „errors“, „warnings“, „progress“, „progress+“, „progress++“ oder „progress+++“. Überschreibt -v und -q:

--logdir=<dir>

[Erweitert] Ermöglicht das Schreiben detaillierter Protokolle in eine oder mehrere Dateien im angegebenen Verzeichnis mit generierten Namen, die Zeitstempel und den Namen des ausgeführten Unterbefehls enthalten.

(Um eine Protokolldatei mit einem Namen zu schreiben, über den du die volle Kontrolle hast, gib stattdessen --log-to-stderr an, und leite stderr wie gewünscht um.)

--common-caches=<dir>

[Erweitert] Steuert den Speicherort zwischengespeicherter Daten auf dem Datenträger, der zwischen mehreren Ausführungsvorgängen der CLI beibehalten wird, z. B. heruntergeladene QL-Pakete und kompilierte Abfragepläne. Wenn dies nicht explizit festgelegt ist, wird dieses Verzeichnis standardmäßig auf ein Verzeichnis mit dem Namen .codeql festgelegt, das sich im Startverzeichnis des Benutzer. Es wird erstellt, wenn es noch nicht vorhanden ist.

Verfügbar seit v2.15.2.