Skip to content

Latest commit

 

History

History
89 lines (58 loc) · 3.03 KB

File metadata and controls

89 lines (58 loc) · 3.03 KB

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_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.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'