Skip to content

Driver List Reference

dbc.toml is the default filename dbc uses for a driver list. This page outlines the structure of that file.

This file uses the TOML file format and contains a single TOML Table called "drivers". Each driver must have a name and may optionally have a version constraint and pre-release setting. See Version Constraints to learn how to specify version constraints.

Example

The following driver list specifies:

  • Whatever is the latest stable version of the "mysql" driver
  • The exact 1.4.0 version of the "duckdb" driver
  • The latest stable version in the 1.x.x major series for the "postgresql" driver
  • The latest version (including pre-releases) of the "snowflake" driver
[drivers]

[drivers.mysql]

[drivers.duckdb]
version = '=1.4.0'

[drivers.postgresql]
version = '=1.x.x'

[drivers.snowflake]
prerelease = 'allow'

Fields

version

Optional. A version constraint string that specifies which versions of the driver are acceptable. If omitted, dbc will use the latest stable version available.

See Version Constraints for the full syntax.

prerelease

SINCE v0.2.0

Optional. Controls whether pre-release versions should be considered during version resolution.

  • When set to 'allow', dbc will consider pre-release versions when selecting which version to install
  • When omitted or set to any other value, only stable (non-pre-release) versions will be considered

This field is typically set automatically when using dbc add --pre.

Example:

[drivers.mysql]
prerelease = 'allow'

Interaction with version constraints:

The prerelease field only affects implicit version resolution. When your version constraint unambiguously references a pre-release by including a pre-release suffix (like version = '>=1.0.0-beta.1'), pre-release versions will be considered regardless of this field.

However, if your version constraint is ambiguous and only pre-release versions satisfy it, dbc sync will fail unless prerelease = 'allow' is set. For example, if a driver has versions 0.1.0 and 0.1.1-beta.1:

[drivers.mysql]
version = '>0.1.0'
# This will FAIL during sync, not install 0.1.1-beta.1

To allow the pre-release in this case, either:

  • Add prerelease = 'allow'
  • Change the constraint to reference the pre-release: version = '>=0.1.1-beta.1'