---
name: "wt"
section: "1"
platform: "linux"
package: "wiredtiger"
version: "3.2.1-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/wt"
---

# wt(1)

WiredTiger includes a command line utility, wt.

## NAME

wtWiredTiger command line utility \
  \- WiredTiger includes a command line utility, `wt`.

## SYNOPSIS

`wt [-LRVv] [-C config] [-E secretkey ] [-h directory] command [command-specific arguments]`

## DESCRIPTION

The `wt` tool is a command-line utility that provides access to various pieces of the WiredTiger functionality.

## OPTIONS

There are several global options:

- **-C config**

  Specify configuration strings for the **wiredtiger\_open** function.

- **-E secretkey**

  Specify an encryption secret key for the **wiredtiger\_open** function.

- **-h directory**

  Specify a database home directory.

- **-L**

  Forcibly turn off logging subsystem for debugging purposes.

- **-R**

  Run recovery if the underlying database is configured to do so.

- **-V**

  Display WiredTiger version and exit.

- **-v**

  Set verbose output.

Unless otherwise described by a `wt` command, the `wt` tool exits zero on success and non-zero on error.

The `wt` tool supports several commands. If configured in the underlying database, some commands will run recovery when opening the database. If the user wants to force recovery on any command, use the `-R` option. In general, commands that modify the database or tables will run recovery by default and commands that only read data will not run recovery.

## wt alter

Alter a table.

### Synopsis

`wt [-RVv] [-C config] [-E secretkey ] [-h directory] alter uri configuration ...`

The `uri` and `configuration` pairs may be specified to the `alter` command. These configuration pairs can be used to modify the configuration values from those passed to the **WT\_SESSION::create** call.

The `uri` part of the configuration pair should match only one of the objects being altered, but may be a prefix of the object being matched. For example, the following two sets of configuration pairs are equivalent in the case of altering a single table named `xxx`.

```
table access_pattern_hint=sequential
table:xxx access_pattern_hint=sequential
```

It's an error, however, to specify a matching prefix that matches more than a single object being altered.

Multiple `configuration` arguments may be specified. For example, the following two sets of configuration pairs are equivalent:

```
table:xxx access_pattern_hint=random,cache_resident=false
table:xxx access_pattern_hint=random table:xxx cache_resident=false
```

## wt backup

Perform a backup of a database or set of data sources.

The `backup` command performs a backup of the database, copying the underlying files to a `specified` directory, which can be subsequently opened as a WiredTiger database. See **Backups** for more information, and **File permissions** for specifics on the copied file permissions.

### Synopsis

`wt [-RVv] [-C config] [-E secretkey ] [-h directory] backup [-t uri] directory`

### Options

The following are command-specific options for the `backup` command:

**-t uri**

By default, the `backup` command does a backup of the entire database; the `-t` option changes the `backup` command to do a backup of only the named data sources.

## wt compact

Compact a table.

The `compact` command attempts to rewrite the specified table to consume less disk space.

### Synopsis

`wt [-RVv] [-C config] [-E secretkey ] [-h directory] compact uri`

### Options

The `compact` command has no command-specific options.

## wt create

Create a table.

The `create` command creates the specified `uri` with the specified configuration. It is equivalent to a call to **WT\_SESSION::create** with the specified string arguments.

### Synopsis

`wt [-RVv] [-C config] [-E secretkey ] [-h directory] create [-c config] uri`

### Options

The following are command-specific options for the `create` command:

**-c**

Include a configuration string to be passed to **WT\_SESSION::create**.

## wt drop

Drop a table.

The `drop` command drops the specified `uri`. It is equivalent to a call to **WT\_SESSION::drop** with the 'force' configuration argument.

### Synopsis

`wt [-RVv] [-C config] [-E secretkey ] [-h directory] drop uri`

### Options

The `drop` command has no command-specific options.

## wt dump

Export data in a text format.

The `dump` command outputs the specified table in a portable format which can be re-loaded into a new table using the `load` command.

See **Dump Formats** for details of the dump file formats.

### Synopsis

`wt [-RVv] [-C config] [-E secretkey ] [-h directory] dump [-jrx] [-c checkpoint] [-f output] uri`

### Options

The following are command-specific options for the `dump` command:

**-c**

By default, the `dump` command opens the most recent version of the data source; the `-c` option changes the `dump` command to open the named checkpoint.

**-f**

By default, the `dump` command output is written to the standard output; the `-f` option re-directs the output to the specified file.

**-j**

Dump in JSON (`JavaScript Object Notation`) format.

**-r**

Dump in reverse order, from largest key to smallest.

**-x**

Dump all characters in a hexadecimal encoding (the default is to leave printable characters unencoded).

## wt list

List the tables in the database.

By default, the `list` command prints out the tables stored in the database. If a URI is specified as an argument, only information about that data source is printed.

### Synopsis

`wt [-RVv] [-C config] [-E secretkey ] [-h directory] list [-cv] [uri]`

### Options

The following are command-specific options for the `list` command:

**-c**

If the `-c` option is specified, the data source's checkpoints are printed in a human-readable format.

**-v**

If the `-v` option is specified, the data source's complete schema table value is printed.

## wt load

Load a table from dump output.

The `load` command reads the standard input for data and loads it into a table, creating the table if it does not yet exist. The data should be the format produced by the `dump` command; see **Dump Formats** for details.

By default, if the table already exists, data in the table will be overwritten by the new data (use the `-n` option to make an attempt to overwrite existing data return an error).

### Synopsis

`wt [-RVv] [-C config] [-E secretkey ] [-h directory] load [-ajn] [-f input] [-r name] [uri configuration ...]`

### Options

The following are command-specific options for the `load` command:

**-a**

If the `-a` option is specified, record number keys in the input are ignored and the data is appended to the data source and assigned new record number keys. The `-a` option is only applicable when loading into a column store.

**-f**

By default, the `load` command reads from the standard input; the `-f` option reads the input from the specified file.

**-j**

Load input in the JSON (`JavaScript Object Notation`) format that was created by the `dump -j` command.

**-n**

By default, input data will overwrite existing data where the key/value pair already exists in the data source; the `-n` option causes the `load` command to fail if there's an attempt to overwrite already existing data.

**-r**

By default, the `load` command uses the table name taken from the input; the `-r` option renames the data source.

Additionally, `uri` and `configuration` pairs may be specified to the `load` command. These configuration pairs can be used to modify the configuration values from the dump header passed to the **WT\_SESSION::create** call.

The `uri` part of the configuration pair should match only one of the objects being loaded, but may be a prefix of the object being matched. For example, the following two sets of configuration pairs are equivalent in the case of loading a single table named `xxx`.

```
table block_allocation=first
table:xxx block_allocation=first
```

It's an error, however, to specify a matching prefix that matches more than a single object being loaded.

Multiple `configuration` arguments may be specified. For example, the following two sets of configuration pairs are equivalent:

```
table:xxx block_allocation=first,prefix_compress=false
table:xxx block_allocation=first table:xxx prefix_compress=false
```

## wt loadtext

Load text into a table.

The `loadtext` command reads the standard input for text and loads it into a table. The input data should be printable characters, with newline delimiters for each key or value.

The `loadtext` command does not create the object if it does not yet exist.

In the case of inserting values into a column-store table, each value is appended to the table; in the case of inserting values into a row-store table, lines are handled in pairs, where the first line is the key and the second line is the value. If the row-store table already exists, data in the table will be overwritten by the new data.

### Synopsis

`wt [-RVv] [-C config] [-E secretkey ] [-h directory] loadtext [-f input] uri`

### Options

The following are command-specific options for the `loadtext` command:

**-f**

By default, the `loadtext` command reads from the standard input; the `-f` option reads the input from the specified file.

## wt printlog

Display the database log.

The `printlog` command outputs the database log.

### Synopsis

`wt [-RVv] [-C config] [-E secretkey ] [-h directory] printlog [-x] [-f output]`

### Options

The following are command-specific options for the `printlog` command:

**-f**

By default, the `printlog` command output is written to the standard output; the `-f` option re-directs the output to the specified file.

**-x**

Keys and value items in the log are printed in hex format in addition to the default string format.

## wt read

Read records from a table.

The `read` command prints out the records associated with the specified keys from the specified data source. The data source must be configured with string or record number keys and string values.

The `read` command exits non-zero if a specified record is not found.

### Synopsis

`wt [-RVv] [-C config] [-E secretkey ] [-h directory] read uri key ...`

### Options

The `read` command has no command-specific options.

## wt rename

Rename a table.

The `rename` command renames the specified table.

### Synopsis

`wt [-RVv] [-C config] [-E secretkey ] [-h directory] rename uri name`

### Options

The `rename` command has no command-specific options.

## wt salvage

Recover data from a corrupted table.

The `salvage` command salvages the specified data source, discarding any data that cannot be recovered. Underlying files are re-written in place, overwriting the original file contents.

### Synopsis

`wt [-RVv] [-C config] [-E secretkey ] [-h directory] salvage [-F] uri`

### Options

The following are command-specific options for the `salvage` command:

**-F**

By default, salvage will refuse to salvage tables that fail basic tests (for example, tables that don't appear to be in a WiredTiger format). The `-F` option forces the salvage of the table, regardless.

## wt stat

Display database or data source statistics.

The `stat` command outputs run-time statistics for the WiredTiger engine, or, if specified, for the URI on the command-line.

### Synopsis

`wt [-RVv] [-C config] [-E secretkey ] [-h directory] stat [-f] [uri]`

### Options

The following are command-specific options for the `stat` command:

**-f**

Include only 'fast' statistics in the output (equivalent to passing `statistics=(fast)`) to **WT\_SESSION::open\_cursor**.

## wt truncate

Truncate a table, removing all data.

The `truncate` command truncates the specified `uri`. It is equivalent to a call to **WT\_SESSION::truncate** with no start or stop specified.

### Synopsis

`wt [-RVv] [-C config] [-E secretkey ] [-h directory] truncate uri`

### Options

The `truncate` command has no command-specific options.

## wt upgrade

Upgrade a table.

The `upgrade` command upgrades the specified table, exiting success if the data source is up-to-date, and failure if the data source cannot be upgraded.

### Synopsis

`wt [-RVv] [-C config] [-E secretkey ] [-h directory] upgrade uri`

### Options

The `upgrade` command has no command-specific options.

## wt verify

Check the structural integrity of a table.

The `verify` command verifies the specified table, exiting success if the data source is correct, and failure if the data source is corrupted.

### Synopsis

`wt [-RVv] [-C config] [-E secretkey ] [-h directory] verify uri`

### Options

The `verify` command has no command-specific options.

## wt write

Write records to a table.

The `write` command stores records into the specified data source. The data source must be configured with string or record number keys and string values.

If the `write` command is called with the `-a` option, each command-line argument is a single value to be appended to the specified column-store data source. If the `write` command is not called with the `-a` option, the command-line arguments are key/value pairs.

Attempting to overwrite an already existing record will fail.

### Synopsis

` wt [-RVv] [-C config] [-E secretkey ] [-h directory] write -a uri value ... `\
\
 ` wt [-RVv] [-C config] [-E secretkey ] [-h directory] write [-o] uri key value ... `

### Options

The following are command-specific options for the `write` command:

**-a**

Append each value as a new record in the data source.

**-o**

By default, attempting to overwrite an already existing record will fail. The `-o` option changes `write` to overwrite previously existing records.
