Как создавать запись в базе данных в момент запуска телеграмм бота?

Использую aiogram 3, sqlachemy 2, python 3.11 Мне нужно, чтобы в момент запуска бота проверялось есть ли определенная запись в базе данных и, если этой записи нет, создать ее. Функция, которая делает эти проверки, уже готова. Проблема в том, что я не знаю как ее вызвать когда бот запускается.

# main.py
async def on_startup():
    await create_db()
    await start_up_check_bd()
    
async def main():
    logging.basicConfig(level=logging.INFO)
    dp.startup.register(on_startup)
    dp.shutdown.register(on_shutdown)

    dp.update.middleware(DataBaseSession(session_pool=session_maker))

    await bot.delete_webhook(drop_pending_updates=True)
    await dp.start_polling(bot, allowed_updates=ALLOWED_UPDATES)

asyncio.run(main())
# orm.py
async def start_up_check_bd(session: AsyncSession):
    q = await session.execute(select(SomeTable))
    if q.scalar():
        return
    obj = SomeTable()
    session.add(obj)
    await session.commit()

Если это делать в функции start_up(), то мне в функцию start_up_check_bd нужно передать аргумент session, но я не знаю где его взять в файле main.py... Каким образом можно реализовать это?


Ответы (0 шт):