<@U088WCP3B4P>, what are some patterns to be able ...
# ask-elementary-ai
f
@kapa.ai, what are some patterns to be able a dbt project that uses the dbt elementary package + elementary
edr
CLI tools already to dbt fusion?
k
Migrating a dbt Project (with Elementary) to dbt Fusion Here are the key patterns to follow when migrating a project that already uses the Elementary dbt package and
edr
CLI to dbt Fusion: 1. Upgrade the Elementary dbt Package Ensure you're on Elementary version ≥ 0.20, as that's when dbt Fusion support was introduced. [dbt Fusion OSS]
Copy code
# packages.yml
packages:
  - package: elementary-data/elementary
    version: 0.25.1
Then run:
Copy code
dbt deps
dbt run --select elementary
2. Migrate Test Syntax (Most Important Change) dbt Fusion enforces stricter YAML parsing. For all Elementary tests, you must: • Move test arguments under an
arguments:
field • Move config fields (
meta
,
tags
,
severity
) under a
config:
field • Optionally rename
tests:
→
data_tests:
Old syntax:
Copy code
models:
  - name: login_events
    tests:
      - elementary.volume_anomalies:
          where_expression: "event_type in ('event_1', 'event_2')"
          time_bucket:
            period: day
            count: 1
          tags: ["elementary"]
          severity: warn
          meta:
            owner: "@jessica.jones"
New (Fusion-compatible) syntax:
Copy code
models:
  - name: login_events
    data_tests:
      - elementary.volume_anomalies:
          arguments:
            where_expression: "event_type in ('event_1', 'event_2')"
            time_bucket:
              period: day
              count: 1
          config:
            tags: ["elementary"]
            severity: warn
            meta:
              owner: "@jessica.jones"
[dbt Fusion OSS; dbt Fusion Cloud] > Tip: Use the dbt-autofix tool to automate these YAML migrations. Upgrade to the latest dbt-core version first, as some syntax changes aren't supported on older versions. 3. Fix config.elementary Placement Fusion flags
config.elementary
as an unexpected key and requires it to be moved under `config.meta`: Old:
Copy code
models:
  - name: login_events
    config:
      elementary:
        timestamp_column: "loaded_at"
New:
Copy code
models:
  - name: login_events
    config:
      meta:
        elementary:
          timestamp_column: "loaded_at"
The Elementary team has confirmed this works correctly and they regularly test against dbt Fusion with this format enforced. [community thread] 4. Fix dbt_project.yml Configuration Ensure the
elementary:
block is a sibling to your project name under
models:
, not nested within it:
Copy code
models:
  my_project:
    materialized: table

  elementary:
    +schema: "elementary"
[community thread] 5. Know What's Not Supported Yet Before migrating, be aware of these current limitations with dbt Fusion: [dbt Fusion OSS] 6. The edr CLI The
edr
CLI itself is not directly affected by the Fusion migration — it reads from the Elementary schema in your warehouse. As long as the dbt package runs correctly with Fusion and writes to the Elementary schema,
edr monitor
and
edr report
should continue to work as before. 👍 0 button 👎 0 button ℹ️ Tip: Mention @elementary.ai in the thread for follow-ups or DM the app for 1-to-1 help., with interactive elements
f
The issue I have is that when I install
elementary-data==0.25.0
in the same virtualenv as
dbt==2.0.0rc196
the result is that I still use dbt-core instead of dbt Fusion
@kapa.ai, The issue I have is that when I install
elementary-data==0.25.0
in the same virtualenv as
dbt==2.0.0rc196
the result is that I still use dbt-core instead of dbt Fusion. So for example:
Copy code
(venv) ➜  chore-fusion-upgrade git:(chore/fusion-upgrade) ✗ dbt --version
dbt-fusion 2.0.0-preview.196
(venv) ➜  chore-fusion-upgrade git:(chore/fusion-upgrade) ✗ pip install elementary-data==0.25.0
Collecting elementary-data==0.25.0
...
(venv) ➜  chore-fusion-upgrade git:(chore/fusion-upgrade) ✗ dbt --version
Core:
  - installed: 1.11.12
  - latest:    1.11.12 - Up to date!
What can I do about this?
k
I'm sorry, but the knowledge sources do not contain enough information to answer this specific question confidently. What you're describing —
elementary-data
pulling in
dbt-core
as a dependency and overriding your
dbt-fusion
installation — is a known packaging conflict, but the knowledge sources available to me don't cover how to resolve this dependency collision between
elementary-data
and
dbt-fusion
in the same virtualenv. What I can confirm from the knowledge sources: • Elementary dbt package ≥ 0.20 supports dbt Fusion (in beta). [dbt Fusion OSS] • The
edr
CLI (
elementary-data
Python package) requires
dbt-core
as a dependency, which is likely what's causing the conflict. My recommendation: Reach out directly to the Elementary community on Slack, as this appears to be an active area of development. The Elementary team is responsive there and would be best placed to advise on the correct way to install
elementary-data
alongside
dbt-fusion
without
dbt-core
overriding the Fusion binary. You can also check the Elementary GitHub issues for any open issues related to
dbt-fusion
+
elementary-data
pip installation conflicts. 👍 0 button 👎 0 button ℹ️ Tip: Mention @elementary.ai in the thread for follow-ups or DM the app for 1-to-1 help.