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.
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'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.
{{ since_version('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.1To 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'