Compare commits

...

4 Commits

Author SHA1 Message Date
Elizabeth Thompson
44d3f769cb fix: Use DuckDB versions that match known-working motherduck config
Updated to use duckdb==0.10.2 and duckdb-engine==0.12.1, which are the
same versions used in the motherduck configuration that are known to work
with Superset's DuckDB integration.
2025-09-25 18:01:50 -07:00
Elizabeth Thompson
1cf14f1081 fix: Pin compatible DuckDB versions to resolve showtime examples loading
This fixes the 'unhashable type: _duckdb.typing.DuckDBPyType' error that
prevents DuckDB connections from working in showtime ephemeral environments.

Problem: The current DuckDB versions (duckdb==1.3.2, duckdb-engine==0.17.0)
have type system compatibility issues with Superset's DuckDB integration.

Solution: Pin to older, stable versions that are known to work:
- duckdb==1.0.0 (stable core library)
- duckdb-engine==0.11.2 (compatible SQLAlchemy driver)

This enables showtime environments to successfully connect to DuckDB databases
and load examples from the pre-built examples.duckdb file.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-25 18:00:36 -07:00
Elizabeth Thompson
482b7108ae Revert "fix: Add DuckDB examples URI to ECS task definition for showtime environments"
This reverts commit 55e3da478a.
2025-09-25 09:50:04 -07:00
Elizabeth Thompson
b2129b4277 fix: Move LOAD_EXAMPLES_DUCKDB ARG to global scope in Dockerfile
This fixes an issue where the LOAD_EXAMPLES_DUCKDB build argument was
being ignored during multi-stage Docker builds, causing showtime
ephemeral environments to fail loading examples.

Problem: The ARG was declared inside the python-common stage, making it
unavailable when passed via --build-arg to the showtime target.

Solution: Move the ARG declaration to global scope (before any FROM) and
re-declare it in the python-common stage where it's used. This follows
Docker's multi-stage build ARG scope rules.

This fix ensures that when showtime builds with:
  docker buildx build --build-arg LOAD_EXAMPLES_DUCKDB=true --target showtime

The DuckDB examples file will actually be downloaded during the build.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-24 15:10:30 -07:00
3 changed files with 6 additions and 7 deletions

View File

@@ -31,10 +31,6 @@
{
"name": "TALISMAN_ENABLED",
"value": "False"
},
{
"name": "SUPERSET__SQLALCHEMY_EXAMPLES_URI",
"value": "duckdb:////app/data/examples.duckdb?access_mode=read_only"
}
],
"mountPoints": [],

View File

@@ -26,6 +26,9 @@ ARG BUILDPLATFORM=${BUILDPLATFORM:-amd64}
# Include translations in the final build
ARG BUILD_TRANSLATIONS="false"
# Build arg to pre-populate examples DuckDB file
ARG LOAD_EXAMPLES_DUCKDB="false"
######################################################################
# superset-node-ci used as a base for building frontend assets and CI
######################################################################
@@ -143,8 +146,8 @@ RUN if [ "${BUILD_TRANSLATIONS}" = "true" ]; then \
######################################################################
FROM python-base AS python-common
# Build arg to pre-populate examples DuckDB file
ARG LOAD_EXAMPLES_DUCKDB="false"
# Re-declare build arg to receive it in this stage
ARG LOAD_EXAMPLES_DUCKDB
ENV SUPERSET_HOME="/app/superset_home" \
HOME="/app/superset_home" \

View File

@@ -133,7 +133,7 @@ denodo = ["denodo-sqlalchemy~=1.0.6"]
dremio = ["sqlalchemy-dremio>=1.2.1, <4"]
drill = ["sqlalchemy-drill>=1.1.4, <2"]
druid = ["pydruid>=0.6.5,<0.7"]
duckdb = ["duckdb-engine>=0.17.0"]
duckdb = ["duckdb==0.10.2", "duckdb-engine==0.12.1"]
dynamodb = ["pydynamodb>=0.4.2"]
solr = ["sqlalchemy-solr >= 0.2.0"]
elasticsearch = ["elasticsearch-dbapi>=0.2.9, <0.3.0"]