Reflect DB Schema¶
import streamlit as st
from sqlalchemy import create_engine, MetaData
from pathlib import Path
import yaml
Read DB configuration
db_config_file = Path("alchem.yml")
if db_config_file.exists():
with open(db_config_file, 'r') as file:
db_config = yaml.safe_load(file)
db_name = db_config["db_name"]
db_user = db_config["db_user"]
db_pass = db_config["db_pass"]
db_schema = db_config["db_schema"]
db_name = st.text_input("db name", db_name)
db_user = st.text_input("db user", db_user)
db_pass = st.text_input("db pass", db_pass)
db_schema = st.text_input("db schema", db_schema)
metadata = MetaData(schema=db_schema)
Reflect DB Schema
if st.button("Reflect schema", type="primary", width="stretch"):
DATABASE_URL = f"postgresql+psycopg://{db_user}:{db_pass}@localhost:5432/{db_name}"
engine = create_engine(
DATABASE_URL,
echo=False,
pool_pre_ping=True,
)
metadata.reflect(bind=engine)
st.write(metadata.tables.keys())