import json from superset.app import create_app app = create_app() with app.app_context(): from superset import db from superset.models.core import Database from superset.connectors.sqla.models import SqlaTable name = "Trino \u00b7 Iceberg Lakehouse" uri = "trino://admin@10.0.21.50:8089/iceberg" dbobj = db.session.query(Database).filter_by(database_name=name).first() if not dbobj: dbobj = Database(database_name=name, sqlalchemy_uri=uri) dbobj.expose_in_sqllab = True db.session.add(dbobj) db.session.commit() print("created database id", dbobj.id) else: print("database exists id", dbobj.id) tbl = ( db.session.query(SqlaTable) .filter_by(table_name="historical_sales", schema="historical", database_id=dbobj.id) .first() ) if not tbl: tbl = SqlaTable(table_name="historical_sales", schema="historical", database=dbobj) db.session.add(tbl) db.session.commit() try: tbl.fetch_metadata() db.session.commit() except Exception as e: print("fetch_metadata warning:", str(e)[:200]) print("created dataset id", tbl.id) else: print("dataset exists id", tbl.id) print("COLUMNS:", [c.column_name for c in tbl.columns]) print("DB_ID", dbobj.id, "TABLE_ID", tbl.id)