trino/ deleted; the role trino_ro becomes fuel_ro, its password read from a secret file at connect time; dashboards' SQL and column list for PostgreSQL; the Compose project is renamed petrolyst, with volumes pinned to their old names. AGENTS.md points to the architecture context. Not deployed: the next deploy needs README's one-time steps first. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
34 lines
1.4 KiB
Bash
Executable File
34 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# superset-init: migrate the metadata database, sync roles and permissions, and
|
|
# register the connection to fuel-db. It is copied into the Superset image, so a
|
|
# change here changes the image tag; deploy/deploy.sh runs it on a fresh install
|
|
# and whenever that tag changes. Every step is idempotent. Unlike the
|
|
# upstream docker-init.sh it never creates a local admin: users come from
|
|
# Keycloak.
|
|
set -euo pipefail
|
|
|
|
superset db upgrade
|
|
superset init
|
|
|
|
# Trino was removed on 29 Oct 2026. An instance still holding its connection
|
|
# "Fuel (Trino)" gets it renamed, so its datasets and dashboards keep their ids;
|
|
# the next step points it at fuel-db. Drop this once no instance has it.
|
|
/app/.venv/bin/python - <<'PY'
|
|
from superset.app import create_app
|
|
|
|
with create_app().app_context():
|
|
from superset import db
|
|
from superset.models.core import Database
|
|
|
|
old = db.session.query(Database).filter_by(database_name="Fuel (Trino)").one_or_none()
|
|
if old and not db.session.query(Database).filter_by(database_name="Fuel").count():
|
|
old.database_name = "Fuel"
|
|
db.session.commit()
|
|
print('renamed the connection "Fuel (Trino)" to "Fuel"')
|
|
PY
|
|
|
|
# No password here: superset_config.py reads it from /run/secrets at connect time.
|
|
superset set-database-uri \
|
|
--database_name "Fuel" \
|
|
--uri "postgresql+psycopg2://fuel_ro@fuel-db:5432/fuel"
|