diff --git a/pyproject.toml b/pyproject.toml index f3adc50..2ab7559 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -42,6 +42,7 @@ packages = ["xpartamupp"] echelon = "xpartamupp.echelon:main" echelon-db = "xpartamupp.lobby_ranking:main" modbot = "xpartamupp.modbot:main" +modbot-db = "xpartamupp.lobby_moderation_db:main" xpartamupp = "xpartamupp.xpartamupp:main" [tool.ruff] diff --git a/xpartamupp/lobby_moderation_db.py b/xpartamupp/lobby_moderation_db.py index ea62180..324cf57 100755 --- a/xpartamupp/lobby_moderation_db.py +++ b/xpartamupp/lobby_moderation_db.py @@ -227,7 +227,9 @@ def parse_args(): formatter_class=argparse.ArgumentDefaultsHelpFormatter, description="Helper command for database creation", ) - parser.add_argument("action", help="Action to apply to the database", choices=["create"]) + parser.add_argument( + "action", help="Action to apply to the database", choices=["create", "schema"] + ) parser.add_argument( "--database-url", help="URL for the moderation database", @@ -242,6 +244,13 @@ def main(): engine = create_engine(args.database_url) if args.action == "create": Base.metadata.create_all(engine) + elif args.action == "schema": + engine = create_engine( + "sqlite://", + strategy="mock", + executor=lambda sql, _: print(sql.compile(dialect=engine.dialect)), # noqa: T201 + ) + Base.metadata.create_all(engine, checkfirst=False) if __name__ == "__main__": diff --git a/xpartamupp/lobby_ranking.py b/xpartamupp/lobby_ranking.py index d4caaac..bc9b929 100755 --- a/xpartamupp/lobby_ranking.py +++ b/xpartamupp/lobby_ranking.py @@ -158,7 +158,9 @@ def parse_args(): formatter_class=argparse.ArgumentDefaultsHelpFormatter, description="Helper command for database creation", ) - parser.add_argument("action", help="Action to apply to the database", choices=["create"]) + parser.add_argument( + "action", help="Action to apply to the database", choices=["create", "schema"] + ) parser.add_argument( "--database-url", help="URL for the leaderboard database", @@ -173,6 +175,13 @@ def main(): engine = create_engine(args.database_url) if args.action == "create": Base.metadata.create_all(engine) + elif args.action == "schema": + engine = create_engine( + "sqlite://", + strategy="mock", + executor=lambda sql, _: print(sql.compile(dialect=engine.dialect)), # noqa: T201 + ) + Base.metadata.create_all(engine, checkfirst=False) if __name__ == "__main__":