github-docs-arabic-enhanced / content /code-security /codeql-cli /codeql-cli-manual /database-finalize.md
| title: database finalize | |
| versions: # DO NOT MANUALLY EDIT. CHANGES WILL BE OVERWRITTEN BY A 🤖 | |
| fpt: '*' | |
| ghec: '*' | |
| ghes: '*' | |
| topics: | |
| - Code Security | |
| - Code scanning | |
| - CodeQL | |
| type: reference | |
| product: '{% data reusables.gated-features.codeql %}' | |
| autogenerated: codeql-cli | |
| intro: '[Plumbing] Final steps in database creation.' | |
| redirect_from: | |
| - /code-security/codeql-cli/manual/database-finalize | |
| <!-- markdownlint-disable GHD053 --> | |
| <!-- markdownlint-disable GHD030 --> | |
| <!-- Content after this section is automatically generated --> | |
| {% data reusables.codeql-cli.man-pages-version-note %} | |
| ## Synopsis | |
| ```shell copy | |
| codeql database finalize [--dbscheme=<file>] [--threads=<num>] [--ram=<MB>] <options>... -- <database> | |
| ``` | |
| ## Description | |
| \[Plumbing] Final steps in database creation. | |
| Finalize a database that was created with [codeql database init](/code-security/codeql-cli/codeql-cli-manual/database-init) and subsequently seeded with analysis data using [codeql database trace-command](/code-security/codeql-cli/codeql-cli-manual/database-trace-command). This needs to happen before the new database can be queried. | |
| ## Options | |
| ### Primary Options | |
| #### `<database>` | |
| \[Mandatory] Path to the CodeQL database under construction. This must | |
| have been prepared for extraction with [codeql database init](/code-security/codeql-cli/codeql-cli-manual/database-init). | |
| If the `--db-cluster` option is given, this is not a database itself, | |
| but a directory that _contains_ databases, and all of those databases | |
| will be processed together. | |
| #### `--[no-]db-cluster` | |
| Indicates that the directory given on the command line is not a database | |
| itself, but a directory that _contains_ one or more databases under | |
| construction. Those databases will be processed together. | |
| #### `--additional-dbs=<database>[:<database>...]` | |
| \[Advanced] Path to additional CodeQL databases under construction. | |
| These will not themselves be finalized, but the data from them will be | |
| included in the finalized database being created. This is an advanced | |
| option that may not have the desired effect in all cases. For more | |
| information, please refer to the documentation of [codeql database import](/code-security/codeql-cli/codeql-cli-manual/database-import). | |
| If the `--db-cluster` option is given, it is expected that these will be | |
| database clusters rather than individual CodeQL databases. | |
| (Note: On Windows the path separator is `;`). | |
| #### `--no-cleanup` | |
| \[Advanced] Suppress all database cleanup after finalization. Useful | |
| for debugging purposes. | |
| #### `--no-pre-finalize` | |
| \[Advanced] Skip any pre-finalize script specified by the active CodeQL | |
| extractor. | |
| #### `--[no-]skip-empty` | |
| \[Advanced] Output a warning instead of failing if a database is empty | |
| because no source code was seen during the build. The empty database | |
| will be left unfinalized. | |
| ### Options for controlling the TRAP import operation | |
| #### `-S, --dbscheme=<file>` | |
| \[Advanced] Override the auto-detected dbscheme definition that the | |
| TRAP files are assumed to adhere to. Normally, this is taken from the | |
| database's extractor. | |
| #### `-j, --threads=<num>` | |
| Use this many threads for the import operation. | |
| Defaults to 1. You can pass 0 to use one thread per core on the machine, | |
| or -_N_ to leave _N_ cores unused (except still use at least one | |
| thread). | |
| #### `-M, --ram=<MB>` | |
| Use this much memory for the import operation. | |
| ### Low-level dataset cleanup options | |
| #### `--max-disk-cache=<MB>` | |
| Set the maximum amount of space that the disk cache for intermediate | |
| query results can use. | |
| If this size is not configured explicitly, the evaluator will try to use | |
| a "reasonable" amount of cache space, based on the size of the dataset | |
| and the complexity of the queries. Explicitly setting a higher limit | |
| than this default usage will enable additional caching which can speed | |
| up later queries. | |
| #### `--min-disk-free=<MB>` | |
| \[Advanced] Set target amount of free space on file system. | |
| If `--max-disk-cache` is not given, the evaluator will try hard to | |
| curtail disk cache usage if the free space on the file system drops | |
| below this value. | |
| #### `--min-disk-free-pct=<pct>` | |
| \[Advanced] Set target fraction of free space on file system. | |
| If `--max-disk-cache` is not given, the evaluator will try hard to | |
| curtail disk cache usage if the free space on the file system drops | |
| below this percentage. | |
| #### `--cache-cleanup=<mode>` | |
| Select how aggressively to trim the cache. Choices include: | |
| `clear`: Remove the entire cache, trimming down to the state of a | |
| freshly extracted dataset | |
| `trim` _(default)_: Trim everything except explicitly "cached" | |
| predicates. | |
| `fit`: Simply make sure the defined size limits for the disk cache are | |
| observed, deleting as many intermediates as necessary. | |
| `overlay`: Trim to just the data that will be useful when evaluating | |
| against an overlay. | |
| #### `--cleanup-upgrade-backups` | |
| Delete any backup directories resulting from database upgrades. | |
| ### Options for checking imported TRAP | |
| #### `--[no-]check-undefined-labels` | |
| \[Advanced] Report errors for undefined labels. | |
| #### `--[no-]check-unused-labels` | |
| \[Advanced] Report errors for unused labels. | |
| #### `--[no-]check-repeated-labels` | |
| \[Advanced] Report errors for repeated labels. | |
| #### `--[no-]check-redefined-labels` | |
| \[Advanced] Report errors for redefined labels. | |
| #### `--[no-]check-use-before-definition` | |
| \[Advanced] Report errors for labels used before they're defined. | |
| #### `--[no-]fail-on-trap-errors` | |
| \[Advanced] Exit non-zero if an error occurs during trap import. | |
| #### `--[no-]include-location-in-star` | |
| \[Advanced] Construct entity IDs that encode the location in the TRAP | |
| file they came from. Can be useful for debugging of TRAP generators, but | |
| takes up a lot of space in the dataset. | |
| #### `--[no-]linkage-aware-import` | |
| \[Advanced] Controls whether [codeql dataset import](/code-security/codeql-cli/codeql-cli-manual/dataset-import) is linkage-aware _(default)_ or not. On projects where this part of database creation | |
| consumes too much memory, disabling this option may help them progress | |
| at the expense of database completeness. | |
| Available since `v2.15.3`. | |
| ### Common options | |
| #### `-h, --help` | |
| Show this help text. | |
| #### `-J=<opt>` | |
| \[Advanced] Give option to the JVM running the command. | |
| (Beware that options containing spaces will not be handled correctly.) | |
| #### `-v, --verbose` | |
| Incrementally increase the number of progress messages printed. | |
| #### `-q, --quiet` | |
| Incrementally decrease the number of progress messages printed. | |
| #### `--verbosity=<level>` | |
| \[Advanced] Explicitly set the verbosity level to one of errors, | |
| warnings, progress, progress+, progress++, progress+++. Overrides `-v` | |
| and `-q`. | |
| #### `--logdir=<dir>` | |
| \[Advanced] Write detailed logs to one or more files in the given | |
| directory, with generated names that include timestamps and the name of | |
| the running subcommand. | |
| (To write a log file with a name you have full control over, instead | |
| give `--log-to-stderr` and redirect stderr as desired.) | |
| #### `--common-caches=<dir>` | |
| \[Advanced] Controls the location of cached data on disk that will | |
| persist between several runs of the CLI, such as downloaded QL packs and | |
| compiled query plans. If not set explicitly, this defaults to a | |
| directory named `.codeql` in the user's home directory; it will be | |
| created if it doesn't already exist. | |
| Available since `v2.15.2`. | |