{"meta":{"title":"Datenbankinit","intro":"[Plumbing] Erstellt eine leere CodeQL-Datenbank.","product":"Sicherheit und Codequalität","breadcrumbs":[{"href":"/de/code-security","title":"Sicherheit und Codequalität"},{"href":"/de/code-security/reference","title":"Reference"},{"href":"/de/code-security/reference/code-scanning","title":"Codeüberprüfung"},{"href":"/de/code-security/reference/code-scanning/codeql","title":"CodeQL"},{"href":"/de/code-security/reference/code-scanning/codeql/codeql-cli-manual","title":"CodeQL CLI-Leitfaden"},{"href":"/de/code-security/reference/code-scanning/codeql/codeql-cli-manual/database-init","title":"Datenbankinit"}],"documentType":"article"},"body":"# Datenbankinit\n\n\\[Plumbing] Erstellt eine leere CodeQL-Datenbank.\n\n## Zusammenfassung\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          \\[Plumbing] Erstelle eine leere CodeQL-Datenbank.\n```\n\nErstellt eine Grundstruktur für eine CodeQL-Datenbank, die noch keine QL-Rohdaten enthält, aber für die Ausführung von Extraktorschritten genutzt werden kann. Führt nach Abschluss dieses Befehls mindestens einen [codeql database trace-command](/de/code-security/reference/code-scanning/codeql/codeql-cli-manual/database-trace-command)-Befehl gefolgt von [codeql database finalize](/de/code-security/reference/code-scanning/codeql/codeql-cli-manual/database-finalize) aus, um die Datenbank für Abfragen vorzubereiten.\n\n(Dabei wird unter anderem der Speicherort des entsprechenden Sprachpakets ermittelt und in den Metadaten der Datenbank gespeichert, sodass dies nicht bei jedem Extraktionsbefehl wiederholt werden muss. Es ist ohnehin nicht zulässig, die Extraktoren mitten in einem Extraktionsvorgang zu wechseln.)\n\n## Options\n\n### Primäre Optionen\n\n#### `<database>`\n\n```\n          \\[Erforderlich] Pfad zur zu erstellenden CodeQL-Datenbank. Dieses Verzeichnis wird erstellt und _darf noch nicht_ vorhanden sein (aber das übergeordnete Verzeichnis muss vorhanden sein).\n```\n\nWenn die Option `--db-cluster` angegeben ist, handelt es sich nicht um eine Datenbank als solches, sondern um ein Verzeichnis, das Datenbanken für mehrere Sprachen *enthält*, die aus demselben Quellstammverzeichnis erstellt wurden.\n\nEs ist wichtig, dass sich dieses Verzeichnis nicht an einem Speicherort befindet, an dem der Buildprozess beeinträchtigt wird. Das Verzeichnis `target` eines Maven-Projekts wäre zum Beispiel keine geeignete Wahl.\n\n#### `-s, --source-root=<dir>`\n\n```\n          \\[Erforderlich] Das Stammverzeichnis für den Quellcode. In vielen Fällen ist dies das Check-Out-Stammverzeichnis. Die darin enthaltenen Dateien gelten als primäre Quelldateien für diese Datenbank. In einigen Ausgabeformaten wird auf Dateien durch den relativen Pfad aus diesem Verzeichnis verwiesen.\n```\n\n#### `--[no-]overwrite`\n\n```\n          \\[Erweitert] Wenn die Datenbank bereits existiert, lösche sie und fahre mit diesem Befehl fort, anstatt fehlzuschlagen. Wenn das Verzeichnis zwar existiert, aber nicht wie eine Datenbank aussieht, wird ein Fehler ausgelöst.\n```\n\n#### `--[no-]force-overwrite`\n\n```\n          \\[Erweitert] Wenn die Datenbank bereits existiert, lösche sie, auch wenn sie nicht wie eine Datenbank aussieht, und fahre mit diesem Befehl fort, anstatt fehlzuschlagen. Diese Option sollte mit Vorsicht verwendet werden, da sie das gesamte Datenbankverzeichnis rekursiv löschen kann.\n```\n\n#### `--codescanning-config=<file>`\n\n```\n          \\[Erweitert] Lies eine Code-Scanning-Konfigurationsdatei, in der du festlegst, wie die CodeQL-Datenbanken erstellt werden und welche Abfragen in späteren Schritten ausgeführt werden sollen. Weitere Informationen zum Format dieser Konfigurationsdatei findest du unter [AUTOTITLE](/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning). Um Abfragen aus dieser Datei in einem späteren Schritt auszuführen, rufe [codeql database analyze](/code-security/reference/code-scanning/codeql/codeql-cli-manual/database-analyze) ohne weitere Abfragen auf.\n```\n\n#### `--[no-]db-cluster`\n\nAnstatt eine einzige Datenbank zu erstellen, erstelle einen „Cluster“ aus Datenbanken für verschiedene Sprachen, die jeweils ein Unterverzeichnis des in der Befehlszeile angegebenen Verzeichnisses sind.\n\n#### `-l, --language=<lang>[,<lang>...]`\n\nDie Sprache, die von der neuen Datenbank analysiert wird.\n\nVerwende [codeql resolve languages](/de/code-security/reference/code-scanning/codeql/codeql-cli-manual/resolve-languages), um eine Liste der austauschbaren Sprachextraktoren abzurufen, die im Suchpfad gefunden wurden.\n\nWenn die Option `--db-cluster` angegeben ist, kann dies mehrmals angezeigt werden, oder der Wert kann eine durch Trennzeichen getrennte Liste von Sprachen sein.\n\nWenn diese Option weggelassen wird und das zu analysierende Quellstammverzeichnis ein Check-Out eines GitHub-Repositorys ist, ruft die CodeQL-CLI die GitHub-API auf, um automatisch zu ermitteln, welche Sprachen analysiert werden sollen. Beachte, dass dazu ein GitHub PAT-Token entweder in der Umgebungsvariablen GITHUB\\_TOKEN oder über die Standardeingabe mit der Option `--github-auth-stdin` bereitgestellt werden muss.\n\n#### `--build-mode=<mode>`\n\nDer Buildmodus, der zum Erstellen der Datenbank verwendet wird.\n\nWählen Sie Ihren Buildmodus basierend auf der Sprache aus, die Sie analysieren:\n\n```\n          `none`: Die Datenbank wird erstellt, ohne den Quellcode zu erstellen.\n```\n\nVerfügbar für C#, Java, JavaScript/TypeScript, Python und Ruby.\n\n```\n          `autobuild`: Die Datenbank wird erstellt, indem versucht wird, den Quellcode automatisch zu erstellen. Verfügbar für C/C++, C#, Go, Java/Kotlin und Swift.\n\n          `manual`: Die Datenbank wird erstellt, indem der Source Root mit einem manuell festgelegten Build-Befehl erstellt wird. Verfügbar für C/C++, C#, Go, Java/Kotlin und Swift.\n```\n\nBeim Erstellen einer Datenbank mit `--command` muss nicht zusätzlich „--build-mode none“ angegeben werden.\n\nVerfügbar seit `v2.16.4`.\n\n#### `--[no-]allow-missing-source-root`\n\n```\n          \\[Erweitert] Fortfahren, auch wenn der angegebene Quellstamm nicht existiert.\n```\n\n#### `--[no-]begin-tracing`\n\n```\n          \\[Erweitert] Erstelle einige Skripte, mit denen du ein „indirektes Tracing“ einrichten kannst, das die Integration in bestehende Workflows bietet, wenn kein expliziter Build-Befehl verfügbar ist. Informationen zur Verwendung dieses Features findest du in unserer Dokumentation unter [AUTOTITLE](/code-security/codeql-cli/getting-started-with-the-codeql-cli/preparing-your-code-for-codeql-analysis).\n```\n\n### Baselineberechnungsoptionen\n\n#### `--[no-]calculate-baseline`\n\n```\n          \\[Erweitert] Berechne Baseline-Informationen über den zu analysierenden Code und füge sie der Datenbank hinzu. Standardmäßig ist dies aktiviert, es sei denn, der Quellstamm ist das Stammverzeichnis eines Dateisystems. Dieses Flag kann verwendet werden, um das Verhalten auch im Stammverzeichnis des Dateisystems zu deaktivieren oder zu erzwingen.\n```\n\n#### `--[no-]sublanguage-file-coverage`\n\n```\n          \\[Nur GitHub.com und GitHub Enterprise Server v3.12.0+] Verwende Informationen zur Dateiabdeckung in Untersprachen. Dadurch werden separate Dateiabdeckungsinformationen für Sprachen berechnet, angezeigt und exportiert, die einen CodeQL-Extraktor wie C und C++, Java und Kotlin sowie JavaScript und TypeScript gemeinsam nutzen.\n```\n\nVerfügbar seit `v2.15.2`.\n\n### Optionen zur Extraktorauswahl\n\n#### `--search-path=<dir>[:<dir>...]`\n\nEine Liste der Verzeichnisse, in denen Extraktorpakete gefunden werden können. Bei den Verzeichnissen handelt es sich entweder um die Extraktorpakete selbst oder um Verzeichnisse, die Extraktoren als unmittelbare Unterverzeichnisse enthalten.\n\nEnthält der Pfad mehrere Verzeichnisstrukturen, bestimmt ihre Reihenfolge den Vorrang zwischen ihnen: Wenn die Zielsprache in mehr als einer der Verzeichnisstrukturen vorkommt, gilt die zuerst angegebene.\n\nDie Extraktoren, die mit der CodeQL-Toolkette selbst gebündelt sind, werden immer gefunden. Wenn du jedoch separat verteilte Extraktoren verwenden musst, musst du diese Option angeben (oder, noch besser, `--search-path` in einer Konfigurationsdatei pro Benutzer\\*in einrichten).\n\n(Hinweis: Unter Windows wird `;` als Pfadtrennzeichen verwendet.)\n\n### Optionen zum Konfigurieren des Aufrufs der GitHub-API zur automatischen Spracherkennung.\n\n#### `-a, --github-auth-stdin`\n\nAkzeptiert ein GitHub Apps-Token oder ein persönliches Zugriffstoken über die Standardeingabe.\n\nDadurch wird die GITHUB\\_TOKEN-Umgebungsvariable überschrieben.\n\n#### `-g, --github-url=<url>`\n\nURL der zu verwendenden GitHub-Instanz. Wenn nicht angegeben, versucht die CLI, diese automatisch über den Check-Out-Pfad zu ermitteln. Wenn dies nicht möglich ist, wird diese standardmäßig auf <https://github.com/> gesetzt.\n\n### Optionen zum Konfigurieren des Paket-Managers.\n\n#### `--registries-auth-stdin`\n\nFührt eine Authentifizierung bei GitHub Enterprise Server-Containerregistrierungen durch, indem eine durch Trennzeichen getrennte Liste von \\<registry\\_url>=\\<token>-Paaren übergeben wird.\n\nDu kannst `https://containers.GHEHOSTNAME1/v2/=TOKEN1,https://containers.GHEHOSTNAME2/v2/=TOKEN2` übergeben,\num dich bei zwei GitHub Enterprise Server-Instanzen zu authentifizieren.\n\nDadurch werden die Umgebungsvariablen CODEQL\\_REGISTRIES\\_AUTH und GITHUB\\_TOKEN überschrieben. Wenn du dich nur bei der Containerregistrierung von github.com authentifizieren musst, kannst du dich stattdessen mit der einfacheren Option `--github-auth-stdin` authentifizieren.\n\n### Optionen zum Konfigurieren der Windows-Ablaufverfolgung\n\n#### `--trace-process-name=<process-name>`\n\n```\n          \\[Nur Windows] Beim Initialisieren des Tracings injiziere den Tracer in einen übergeordneten Prozess des CodeQL CLI, dessen Name diesem Argument entspricht. Wenn mehr als ein übergeordneter Prozess diesen Namen hat, wird der niedrigste in der Prozessstruktur ausgewählt. Diese Option überschreibt `--trace-process-level`. Wenn also beide übergeben werden, wird nur diese Option verwendet.\n```\n\n#### `--trace-process-level=<process-level>`\n\n```\n          \\[Nur Windows] Bei der Initialisierung des Tracings injiziere den Tracer so viele übergeordnete Prozesse über dem aktuellen Prozess, wobei 0 dem Prozess entspricht, der das CodeQL CLI aufruft. Das Standardverhalten der CLI, wenn keine Argumente übergeben werden, besteht darin, das übergeordnete Element des Aufrufvorgangs mit einigen Sonderfällen für GitHub Actions und Azure-Pipelines einzufügen.\n```\n\n### Optionen zum Konfigurieren der indirekten Buildablaufverfolgung\n\n#### `--no-tracing`\n\n```\n          \\[Erweitert] Verfolge das angegebene Kommando nicht, sondern verlasse dich darauf, dass es alle notwendigen Daten direkt erzeugt.\n```\n\n#### `--extra-tracing-config=<tracing-config.lua>`\n\n```\n          \\[Erweitert] Der Pfad zu einer Tracer-Konfigurationsdatei. Er kann verwendet werden, um das Verhalten der Buildablaufverfolgung zu ändern. Er kann verwendet werden, um Compilerprozesse zu ermitteln, die als Teil des Buildbefehls ausgeführt werden, und um die Ausführung anderer Tools auszulösen. Die Extraktoren stellen standardmäßige Konfigurationsdateien für die Ablaufverfolgung bereit, die in den meisten Situationen funktionieren sollten.\n```\n\n### Optionen zum Steuern des Extraktorverhaltens: Nur zur Anwendung auf die indirekte Ablaufverfolgungsumgebung\n\n#### `-O, --extractor-option=<extractor-option-name=value>`\n\nLegt Optionen für CodeQL-Extraktoren fest.\n`extractor-option-name` sollte die Form extractor\\_name.group1.group2.option\\_name oder group1.group2.option\\_name haben. Wenn `extractor_option_name` mit einem Extraktornamen beginnt, muss der angegebene Extraktor die Option group1.group2.option\\_name deklarieren. Andernfalls wird in jedem Extraktor, der die Option group1.group2.option\\_name deklariert, die Option festgelegt.\n`value` kann eine beliebige Zeichenfolge sein, die keinen Zeilenumbruch enthält.\n\nDiese Befehlszeilenoption kann wiederholt verwendet werden, um mehrere Extraktoroptionen festzulegen. Wenn du mehrere Werte für die gleiche Extraktoroption angibst, hängt das Verhalten von dem Typ ab, den die Extraktoroption erwartet. Bei Zeichenfolgenoptionen wird der zuletzt angegebene Wert verwendet. Bei Arrayoptionen werden alle angegebenen Werte der Reihe nach verwendet. Mit dieser Befehlszeilenoption angegebene Extraktoroptionen werden nach Extraktoroptionen verarbeitet, die über `--extractor-options-file` angegeben wurden.\n\nBei der Übergabe an „codeql database init“ oder `codeql database begin-tracing` werden die Optionen lediglich auf die indirekte Ablaufverfolgungsumgebung angewendet. Wenn dein Workflow auch Aufrufe an [codeql database trace-command](/de/code-security/reference/code-scanning/codeql/codeql-cli-manual/database-trace-command) sendet, müssen die Optionen auch dorthin übergeben werden, falls gewünscht.\n\nWeitere Informationen zu CodeQL-Extraktoroptionen finden Sie unter <https://codeql.github.com/docs/codeql-cli/extractor-options>. Dort erfahren Sie unter anderem, wie du die von den einzelnen Extraktoren deklarierten Optionen auflisten kannst.\n\n#### `--extractor-options-file=<extractor-options-bundle-file>`\n\nDient zum Angeben von Paketdateien für Extraktoroptionen. Eine Paketdatei für Extraktoroptionen ist eine JSON-Datei (Erweiterung `.json`) oder eine YAML-Datei (Erweiterung `.yaml` oder `.yml`), die Extraktoroptionen festlegt. Die Datei muss über den Zuordnungsschlüssel „Extraktor“ der obersten Ebene und darunter über Extraktornamen als Zuordnungsschlüssel der zweiten Ebene verfügen. Weitere Zuordnungsebenen stellen geschachtelte Extraktorgruppen dar, und Zeichenfolgen- und Arrayoptionen sind Zuordnungseinträge mit Zeichenfolgen- und Arraywerten.\n\nPaketdateien für Extraktoroptionen werden in der angegebenen Reihenfolge gelesen.\nWenn verschiedene Paketdateien für Extraktoroptionen die gleiche Extraktoroption angeben, hängt das Verhalten von dem Typ ab, den die Extraktoroption erwartet. Bei Zeichenfolgenoptionen wird der zuletzt angegebene Wert verwendet. Bei Arrayoptionen werden alle angegebenen Werte der Reihe nach verwendet. Mit dieser Befehlszeilenoption angegebene Extraktoroptionen werden vor Extraktoroptionen verarbeitet, die über `--extractor-option` angegeben wurden.\n\nBei der Übergabe an „codeql database init“ oder `codeql database begin-tracing` werden die Optionen lediglich auf die indirekte Ablaufverfolgungsumgebung angewendet. Wenn dein Workflow auch Aufrufe an [codeql database trace-command](/de/code-security/reference/code-scanning/codeql/codeql-cli-manual/database-trace-command) sendet, müssen die Optionen auch dorthin übergeben werden, falls gewünscht.\n\nWeitere Informationen zu CodeQL-Extraktoroptionen finden Sie unter <https://codeql.github.com/docs/codeql-cli/extractor-options>. Dort erfahren Sie unter anderem, wie du die von den einzelnen Extraktoren deklarierten Optionen auflisten kannst.\n\n### Allgemeine Optionen\n\n#### `-h, --help`\n\nZeigt diesen Hilfetext an.\n\n#### `-J=<opt>`\n\n```\n          \\[Erweitert] Dient zum Angeben einer Option für die JVM-Instanz, die den Befehl ausführt.\n```\n\n(Beachte, dass Optionen, die Leerzeichen enthalten, nicht ordnungsgemäß verarbeitet werden.)\n\n#### `-v, --verbose`\n\nErmöglicht die inkrementelle Erhöhung der Anzahl ausgegebener Statusmeldungen.\n\n#### `-q, --quiet`\n\nErmöglicht die inkrementelle Verringerung der Anzahl ausgegebener Statusmeldungen.\n\n#### `--verbosity=<level>`\n\n```\n          \\[Erweitert] Dient zum expliziten Festlegen des Ausführlichkeitsgrads auf „errors“, „warnings“, „progress“, „progress+“, „progress++“ oder „progress+++“. Überschreibt `-v` und `-q`:\n```\n\n#### `--logdir=<dir>`\n\n```\n          \\[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.\n```\n\n(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.)\n\n#### `--common-caches=<dir>`\n\n```\n          \\[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.\n```\n\nVerfügbar seit `v2.15.2`."}