Skip to content

Commit 04e789e

Browse files
mistercrunchclaude
andcommitted
fix: Ensure SUPERSET__SQLALCHEMY_EXAMPLES_URI takes absolute precedence
- Add explicit environment variable checks to prevent config override - Add final override at end of Docker config to ensure DuckDB URI is used - Fixes issue where SQLite default was overriding DuckDB environment variable in AWS Based on AWS logs showing env var set correctly but app config using SQLite default. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent e0b1449 commit 04e789e

File tree

2 files changed

+33
-6
lines changed

2 files changed

+33
-6
lines changed

docker/pythonpath_dev/superset_config.py

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,17 @@
5050
)
5151

5252
# Use environment variable if set, otherwise construct from components
53-
SQLALCHEMY_EXAMPLES_URI = os.getenv(
54-
"SUPERSET__SQLALCHEMY_EXAMPLES_URI",
55-
f"{DATABASE_DIALECT}://"
56-
f"{EXAMPLES_USER}:{EXAMPLES_PASSWORD}@"
57-
f"{EXAMPLES_HOST}:{EXAMPLES_PORT}/{EXAMPLES_DB}",
58-
)
53+
# This MUST take precedence over any other configuration
54+
_examples_uri_env = os.getenv("SUPERSET__SQLALCHEMY_EXAMPLES_URI")
55+
if _examples_uri_env:
56+
SQLALCHEMY_EXAMPLES_URI = _examples_uri_env
57+
else:
58+
# Fallback to PostgreSQL construction only if env var not set
59+
SQLALCHEMY_EXAMPLES_URI = (
60+
f"{DATABASE_DIALECT}://"
61+
f"{EXAMPLES_USER}:{EXAMPLES_PASSWORD}@"
62+
f"{EXAMPLES_HOST}:{EXAMPLES_PORT}/{EXAMPLES_DB}"
63+
)
5964

6065
# SUPERDEBUG: Log the Docker config override for examples URI
6166
logger = logging.getLogger(__name__)
@@ -163,3 +168,13 @@ class CeleryConfig:
163168
)
164169
except ImportError:
165170
logger.info("Using default Docker config...")
171+
172+
# FINAL OVERRIDE: Ensure SUPERSET__SQLALCHEMY_EXAMPLES_URI takes absolute precedence
173+
# This must be the last thing executed to override any other config files
174+
_final_examples_uri = os.getenv("SUPERSET__SQLALCHEMY_EXAMPLES_URI")
175+
if _final_examples_uri:
176+
SQLALCHEMY_EXAMPLES_URI = _final_examples_uri
177+
logger.info(
178+
f"SUPERDEBUG [docker/pythonpath_dev/superset_config.py]: "
179+
f"FINAL OVERRIDE - SQLALCHEMY_EXAMPLES_URI set to: {SQLALCHEMY_EXAMPLES_URI}"
180+
)

superset/config.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -669,7 +669,19 @@ class D3TimeFormat(TypedDict, total=False):
669669
for env_var in ENV_VAR_KEYS:
670670
if env_var in os.environ:
671671
config_var = env_var.replace("SUPERSET__", "")
672+
old_value = globals().get(config_var, "not previously set")
672673
globals()[config_var] = os.environ[env_var]
674+
# SUPERDEBUG: Log when we process environment variables
675+
import logging
676+
677+
logger = logging.getLogger(__name__)
678+
logger.warning(
679+
f"SUPERDEBUG [superset/config.py]: Processing {env_var} -> {config_var}"
680+
)
681+
logger.warning(f"SUPERDEBUG [superset/config.py]: Old value: {old_value}")
682+
logger.warning(
683+
f"SUPERDEBUG [superset/config.py]: New value: {os.environ[env_var]}"
684+
)
673685

674686
# This function can be overridden to customize the name of the user agent
675687
# triggering the query.

0 commit comments

Comments
 (0)