duckdb / dbt-duckdb

dbt (http://getdbt.com) adapter for DuckDB (http://duckdb.org)
Apache License 2.0
788 stars 70 forks source link

Runtime Error: Extension "httpfs" is an existing extension. #377

Closed a-shipilo closed 3 weeks ago

a-shipilo commented 2 months ago

dbt-duckdb==1.7.3 duckdb==0.9.2

I'm trying to connect to Motherduck using dbt, but get this error:

Runtime Error Extension Autoloading Error: An error occurred while trying to automatically install the required extension 'httpfs': Failed to download extension "httpfs" at URL "http://extensions.duckdb.org/v0.9.2/linux_arm64_gcc4/httpfs.duckdb_extension.gz" Extension "httpfs" is an existing extension.

Here's my profiles.yml configuration file.

duckdb:
  outputs:
    dev:
      type: duckdb
      path: dbt.duckdb
      settings:
        s3_region: "{{ env_var('DUCKDB_S3_ENDPOINT') }}"
        s3_access_key_id: "{{ env_var('AWS_ACCESS_KEY_ID') }}"
        s3_secret_access_key: "{{ env_var('AWS_SECRET_ACCESS_KEY') }}"
    prod:
      type: duckdb
      path: "md:?motherduck_token={{ env_var('MOTHERDUCK_TOKEN') }}"
      database: my_db
      schema: main
      settings:
        s3_region: "{{ env_var('DUCKDB_S3_ENDPOINT') }}"
        s3_access_key_id: "{{ env_var('AWS_ACCESS_KEY_ID') }}"
        s3_secret_access_key: "{{ env_var('AWS_SECRET_ACCESS_KEY') }}"
  target: dev

As seen, I don't use any extensions. Is it a bug or am I doing something wrong?

jwills commented 2 months ago

cc @guenp

Guen can you take a look at this one? Thanks!

guenp commented 2 months ago

@a-shipilo, could you share what OS you are using? Based on your error message it looks you're on Linux. Unfortunately, this is a known issue - DuckDB did not publish ARM for Linux extensions at 0.9.2. More info here. You could try this workaround posted on the thread. This issue should be resolved with 0.10.0 though, so please hang on until MotherDuck supports 0.10.x, and you should be good to go!

a-shipilo commented 2 months ago

@guenp, yes, it's on linux in docker devcontainer by VS Code. Thanks for reply)