Compare commits

...

5 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
Elizabeth Thompson
55e3da478a fix: Add DuckDB examples URI to ECS task definition for showtime environments
This adds the missing SUPERSET__SQLALCHEMY_EXAMPLES_URI environment variable
to the ECS task definition used by showtime ephemeral environments.

Without this configuration, showtime environments were unable to load examples
because the container didn't know where to find the DuckDB examples file that
was downloaded during Docker build (via LOAD_EXAMPLES_DUCKDB=true).

The URI matches what's used in docker-compose.yml and docker-compose-light.yml,
with read-only access mode for safety in ephemeral environments.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-23 18:12:57 -07:00
2 changed files with 6 additions and 3 deletions

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"]