docs-v2/content/shared/influxdb3-cli/create/database.md

176 lines
5.8 KiB
Markdown

The `influxdb3 create database` command creates a new database in your {{< product-name >}} instance.
Provide a database name and, optionally, specify connection settings and authentication credentials using flags or environment variables.
## Usage
<!--pytest.mark.skip-->
```bash
influxdb3 create database [OPTIONS] <DATABASE_NAME>
```
## Arguments
- **`DATABASE_NAME`**: The name of the database to create. Valid database names are alphanumeric and start with a letter or number. Dashes (-) and underscores (_) are allowed.
You can also set the database name using the `INFLUXDB3_DATABASE_NAME` environment variable.
## Options
<!--docs:exclude
--database-name: internal variable, use positional <DATABASE_NAME>
-->
| Option | | Description |
| :----- | :------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------- |
| `-H` | `--host` | Host URL of the running {{< product-name >}} server (default is `http://127.0.0.1:8181`) |
| | `--retention-period` | Database [retention period](/influxdb3/version/reference/glossary/#retention-period) ([duration](/influxdb3/version/reference/glossary/#duration) value, for example: `30d`, `24h`, `1h`) |
| | `--token` | Authentication token |
| | `--tls-ca` | Path to a custom TLS certificate authority (for testing or self-signed certificates) |
| `-h` | `--help` | Print help information |
| | `--help-all` | Print detailed help information |
### Option environment variables
You can use the following environment variables instead of providing CLI options directly:
| Environment Variable | Option |
| :------------------------ | :----------- |
| `INFLUXDB3_HOST_URL` | `--host` |
| `INFLUXDB3_AUTH_TOKEN` | `--token` |
## Examples
The following examples show how to create a database.
In your commands replace the following:
- {{% code-placeholder-key %}}`DATABASE_NAME`{{% /code-placeholder-key %}}:
Database name
- {{% code-placeholder-key %}}`AUTH_TOKEN`{{% /code-placeholder-key %}}:
Authentication token
{{% code-placeholders "DATABASE_NAME|AUTH_TOKEN" %}}
### Create a database (default)
Creates a database using settings from environment variables and defaults.
<!--pytest.mark.skip-->
```bash
influxdb3 create database DATABASE_NAME
```
### Create a database with an authentication token
Creates a database using the specified arguments.
Flags override their associated environment variables.
<!--pytest.mark.skip-->
```bash
influxdb3 create database --token AUTH_TOKEN DATABASE_NAME
```
### Create a database with a retention period
Creates a database with a 30-day retention period.
Data older than 30 days will not be queryable.
<!--pytest.mark.skip-->
```bash
influxdb3 create database --retention-period 30d DATABASE_NAME
```
### Create a database with infinite retention
Creates a database with no retention period (data never expires).
<!--pytest.mark.skip-->
```bash
influxdb3 create database --retention-period none DATABASE_NAME
```
### Create a database with a 90-day retention period
Creates a database with a 90-day retention period using an authentication token.
<!--pytest.mark.skip-->
```bash
influxdb3 create database \
--retention-period 90d \
--token AUTH_TOKEN \
DATABASE_NAME
```
### Create a database with a 1-year retention period
Creates a database with a 1-year retention period.
<!--pytest.mark.skip-->
```bash
influxdb3 create database --retention-period 1y DATABASE_NAME
```
### Create a database with a combined duration
Creates a database with a retention period of 30 days and 12 hours.
<!--pytest.mark.skip-->
```bash
influxdb3 create database --retention-period 30d12h DATABASE_NAME
```
{{% /code-placeholders %}}
## Retention period duration formats
Retention periods are specified as [duration](/influxdb3/version/reference/glossary/#duration)
values using a numeric value plus a duration unit.
### Valid duration units
| Unit | Description |
|:-----|:------------|
| `h` | hour |
| `d` | day |
| `w` | week |
| `mo` | month (30 days) |
| `y` | year (365 days) |
> [!Note]
> Minute (`m`) and second (`s`) units are not supported for retention periods.
> [!Warning]
> #### Retention period constraints
>
> - **Minimum for data retention**: The practical minimum retention period is 1 hour (`1h`).
> - **Zero-duration periods**: Setting a retention period to `0<unit>` (for example,
> `0d` or `0h`) is allowed but marks all data for immediate deletion at query time.
> _This differs from InfluxDB 1.x and 2.x where `0d` meant infinite retention._
> - **Infinite retention**: Use `none` to set an infinite retention period.
### Example duration values
- `1h` - 1 hour
- `24h` - 24 hours
- `7d` - 7 days
- `4w` - 4 weeks
- `30d` - 30 days
- `1mo` - 1 month (30 days)
- `90d` - 90 days
- `1y` - 1 year (365 days)
- `none` - infinite (data never expires)
You can combine units: `30d12h` (30.5 days), `1y6mo` (545 days)
For complete details about retention periods, see
[Data retention in {{< product-name >}}](/influxdb3/version/reference/internals/data-retention/).