Install & Compatibility
Where this runs
tested against v1.11.0 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.95 runs
build_error
glibcpy 3.10–3.95 runs
installs and imports cleanly · install 21.2s · import 0.000s · 161MB
207MB installed
● package 207MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
extend_path
✓ from dbt import extend_path
✗ from dbt_exasol import whatever_if_needed
To use dbt-exasol, you configure your Exasol connection details in a `profiles.yml` file, typically located in `~/.dbt/` or within your dbt project. You then define your dbt models, sources, and other resources as usual. This quickstart demonstrates the necessary `profiles.yml` and a sample model. Interaction with dbt is done through the `dbt` command-line interface (CLI).
import os
# This quickstart demonstrates the configuration for dbt-exasol.
# dbt-exasol is used via the dbt CLI, not direct Python execution of models.
# 1. Install dbt-exasol: pip install dbt-exasol
# 2. Configure your Exasol connection in ~/.dbt/profiles.yml (or project-specific):
profiles_yml_example = f'''
exasol_profile:
target: dev
outputs:
dev:
type: exasol
host: {{os.environ.get('EXASOL_HOST', 'your_exasol_host')}}
port: {{os.environ.get('EXASOL_PORT', 8563)}}
schema: {{os.environ.get('EXASOL_SCHEMA', 'your_schema')}}
user: {{os.environ.get('EXASOL_USER', 'your_user')}}
password: {{os.environ.get('EXASOL_PASSWORD', 'your_password')}}
# Optional advanced properties (e.g., for JDBC)
# jdbc_properties:
# connectionTimeout: 10000
'''
print("Example profiles.yml content (use environment variables for security):")
print(profiles_yml_example)
# 3. Create a dbt project and specify the profile (dbt_project.yml):
# name: 'my_exasol_project'
# version: '1.0.0'
# config-version: 2
# profile: 'exasol_profile'
# 4. Create a simple dbt model (e.g., models/my_first_model.sql):
sql_model_example = '''
-- models/my_first_model.sql
SELECT
'Hello, dbt-Exasol!' as greeting,
CURRENT_TIMESTAMP as current_time
FROM DUAL;
'''
print("\nExample dbt model content:")
print(sql_model_example)
# 5. Run dbt commands from your project directory:
# dbt debug --target dev
# dbt run
if __name__ == '__main__':
print("\nThis code provides configuration examples. Actual execution is via the dbt CLI.")
print("Please set environment variables like EXASOL_HOST, EXASOL_USER, EXASOL_PASSWORD before running dbt commands.")
dbt --version
Debug
Known issues
breakingdbt-exasol has strict compatibility requirements with dbt-core and Python versions. Upgrading dbt-exasol or dbt-core independently can lead to breakage. For dbt-exasol >=1.10.0 (including 1.10.5), ensure you use dbt-core >=1.9.0, <1.11.0 and Python ^3.10, <3.14.fixAlways check the dbt-exasol GitHub README for the latest compatibility matrix before upgrading either dbt-exasol or dbt-core. Pin versions of dbt-core and Python in your environment.
affects: <1.10.0
gotchaOlder versions of dbt-exasol might have issues with connection leaks and cache inconsistencies, particularly in multi-threaded or long-running dbt processes, potentially leading to resource exhaustion or stale data in some scenarios.fixUpgrade to dbt-exasol v1.10.5 or newer to benefit from fixes related to connection handling and cache consistency.
affects: <1.10.5
gotchaPrior to v1.10.3, SQL keyword column names in seed operations might not have been automatically quoted, leading to syntax errors when loading data if column names conflicted with Exasol reserved keywords.fixUpgrade to dbt-exasol v1.10.3 or newer, which includes automatic quoting for SQL keyword column names in seed operations. Alternatively, manually ensure your column names do not conflict with Exasol keywords or are explicitly quoted.
affects: <1.10.3
gotchaThe snapshot implementation was modernized in v1.10.0 to support dbt-core 1.9+ features. Using dbt-core 1.9 or higher with older dbt-exasol versions might result in unexpected behavior or errors with snapshot models.fixEnsure you are using dbt-exasol v1.10.0 or newer if your project utilizes dbt snapshot features with dbt-core 1.9 or higher.
affects: <1.10.0 with dbt-core >=1.9.0
Upgrade
Version history
1.12.1latest on PyPI · released Aug 25, 2026
Audit
Dependencies
dbt-corerequiredThis adapter provides Exasol support for dbt-core. For dbt-exasol >=1.10.0 (including current v1.10.5), it requires dbt-core >=1.9.0, <1.11.0.
PythonrequiredThe adapter has specific Python version requirements. For dbt-exasol >=1.10.0 (including current v1.10.5), it requires Python ^3.10, <3.14.