generated from geekiot/python-template
Change: [flags]: add database flag for the project
This commit is contained in:
parent
1c5edbaa60
commit
a90c8652a0
3 changed files with 37 additions and 6 deletions
|
|
@ -1,4 +1,5 @@
|
|||
__all__ = [
|
||||
"Base",
|
||||
"Student",
|
||||
"TelegramUser",
|
||||
"UniversityMember",
|
||||
|
|
@ -10,7 +11,7 @@ __all__ = [
|
|||
]
|
||||
|
||||
|
||||
from .models import Student, TelegramUser, UniversityMember
|
||||
from .models import Base, Student, TelegramUser, UniversityMember
|
||||
from .postgres import (
|
||||
create_db,
|
||||
drop_db,
|
||||
|
|
|
|||
|
|
@ -22,11 +22,11 @@ session_maker = async_sessionmaker(
|
|||
)
|
||||
|
||||
|
||||
async def create_db(engine: AsyncEngine):
|
||||
async def create_db(engine: AsyncEngine) -> None:
|
||||
async with engine.begin() as conn:
|
||||
await conn.run_sync(Base.metadata.create_all)
|
||||
|
||||
|
||||
async def drop_db(engine: AsyncEngine):
|
||||
async def drop_db(engine: AsyncEngine) -> None:
|
||||
async with engine.begin() as conn:
|
||||
await conn.run_sync(Base.metadata.drop_all)
|
||||
|
|
|
|||
36
src/main.py
36
src/main.py
|
|
@ -1,8 +1,39 @@
|
|||
import argparse
|
||||
import asyncio
|
||||
|
||||
from bot import start_bot
|
||||
from config import configure_logger, settings
|
||||
from database import create_db, engine, redis_protocol, session_maker
|
||||
from database import (
|
||||
create_db,
|
||||
drop_db,
|
||||
engine,
|
||||
redis_protocol,
|
||||
session_maker,
|
||||
)
|
||||
|
||||
|
||||
async def process_args() -> None:
|
||||
parser = argparse.ArgumentParser(
|
||||
description="Wrapper for program flags."
|
||||
)
|
||||
parser.add_argument(
|
||||
"--db",
|
||||
choices=["create", "drop", "migrate"],
|
||||
help="Type of database operation.",
|
||||
)
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
match args.db:
|
||||
case "create":
|
||||
await create_db(engine)
|
||||
exit(0)
|
||||
case "drop":
|
||||
await drop_db(engine)
|
||||
exit(0)
|
||||
case "migrate":
|
||||
...
|
||||
exit(0)
|
||||
|
||||
|
||||
async def main() -> None:
|
||||
|
|
@ -16,8 +47,7 @@ async def main() -> None:
|
|||
listen_logging=settings.listen_logging,
|
||||
)
|
||||
|
||||
# FIXME: Add argument for create/drop db.
|
||||
await create_db(engine)
|
||||
await process_args()
|
||||
|
||||
await start_bot(
|
||||
bot_token=settings.bot_token,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue