From f48dc97b098625e9e47e7d48a4ed79d26e09a7d6 Mon Sep 17 00:00:00 2001 From: h7x4 Date: Mon, 12 Jan 2026 03:21:38 +0900 Subject: [PATCH] create-db: print where db was created, exit 0 --- src/worblehat/main.py | 2 ++ src/worblehat/services/config.py | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/src/worblehat/main.py b/src/worblehat/main.py index e13d1b2..4bbd93d 100644 --- a/src/worblehat/main.py +++ b/src/worblehat/main.py @@ -72,6 +72,8 @@ def main(): database_url = Config.db_string() engine = create_engine(database_url) Base.metadata.create_all(engine) + print(f"Database schema created at '{Config.db_string_no_password()}'") + exit(0) if args.command == "devscripts": sql_session = _connect_to_database(echo=Config["logging.debug_sql"]) diff --git a/src/worblehat/services/config.py b/src/worblehat/services/config.py index 402bcd4..c9faf32 100644 --- a/src/worblehat/services/config.py +++ b/src/worblehat/services/config.py @@ -89,6 +89,28 @@ class Config: print(f"Error: unknown database type '{db_config.get('type')}'") exit(1) + @classmethod + def db_string_no_password(cls) -> str: + db_type = cls._config.get("database").get("type") + + if db_type == "sqlite": + path = Path(cls._config.get("database").get("sqlite").get("path")) + return f"sqlite:///{path.absolute()}" + + elif db_type == "postgresql": + db_config = cls._config.get("database").get("postgresql") + host = db_config.get("host") + port = db_config.get("port") + username = db_config.get("username") + database = db_config.get("database") + if host.startswith("/"): + return f"postgresql+psycopg2://{username}:@/{database}?host={host}" + else: + return f"postgresql+psycopg2://{username}:@{host}:{port}/{database}" + else: + print(f"Error: unknown database type '{db_config.get('type')}'") + exit(1) + @classmethod def debug(cls) -> str: return pformat(cls._config)