in sql-proxy/app.py [0:0]
def connect_db():
# Helper for different database types
sock_ext = ""
socket_name = "unix_socket"
if db_type == "postgres":
sock_ext = f"/.s.PGSQL.{db_port}"
socket_name = "unix_sock"
drivername = "postgresql+pg8000"
elif db_type == "mysql":
drivername = "mysql+pymysql"
elif db_type == "mssql":
drivername = "mssql+pytds"
else:
raise ValueError("Unknown database type provided.")
if db_host and db_port:
settings = {"host": db_host, "port": db_port}
elif db_socket_dir and db_sql_connection:
settings = {
"query": {socket_name: f"{db_socket_dir}/{db_sql_connection}{sock_ext}"}
}
else:
raise ValueError("No Socket/Dir nor Host/Port provided.")
db = sqlalchemy.create_engine(
sqlalchemy.engine.url.URL.create(
drivername=drivername,
username=db_user,
password=db_pass,
database=db_name,
**settings,
)
)
return db