diff --git a/dbt/adapters/duckdb/__version__.py b/dbt/adapters/duckdb/__version__.py index 7e66a105..fa6c5a1a 100644 --- a/dbt/adapters/duckdb/__version__.py +++ b/dbt/adapters/duckdb/__version__.py @@ -1 +1 @@ -version = "1.5.0rc1" \ No newline at end of file +version = "1.5.0rc1" diff --git a/dbt/adapters/duckdb/credentials.py b/dbt/adapters/duckdb/credentials.py index f6f93ed8..ea9853f0 100644 --- a/dbt/adapters/duckdb/credentials.py +++ b/dbt/adapters/duckdb/credentials.py @@ -7,9 +7,11 @@ from typing import List from typing import Optional from typing import Tuple +from urllib.parse import urlparse import duckdb +import dbt.exceptions from dbt.adapters.base import Credentials from dbt.dataclass_schema import dbtClassMixin @@ -122,7 +124,16 @@ def __pre_deserialize__(cls, data: Dict[Any, Any]) -> Dict[Any, Any]: if path == ":memory:": data["database"] = "memory" else: - data["database"] = os.path.splitext(os.path.basename(path))[0] + parsed = urlparse(path) + base_file = os.path.basename(parsed.path) + db = os.path.splitext(base_file)[0] + if db: + data["database"] = db + else: + raise dbt.exceptions.DbtRuntimeError( + "Unable to determine database name from path" + " and no database was specified in profile" + ) return data @property