@zven_bpe

Не добавляется запись в БД aiosqlite?

Пишу бота на aiogram. Мне надо сохранять информацию о пользователях в БД. Выбрал aiosqlite, а не sqlite, так как она асинхронная, как и aiogram. Но в БД почему-то не добавляется запись, хотя таблица создается.
Вот код хэдлера:
@all_router.message(Command('start'))
async def cmd_start(message: Message):
    load_dotenv()
    kb = None
    if message.from_user.id == int(os.getenv('ADMIN_ID')):
        kb = admin_keyboard
    else: 
        kb = reply_menu_keyboard
        users = Users()
        await users.add_user(message.from_user.id)
    await message.answer(await start_text(message.from_user.username), parse_mode='html', reply_markup=kb)

Вот код методов в классе Users, который отвечает за CRUD:
class Users:
    '''This class implements commands for working with the bot's users database'''

    def __init__(self) -> None:
        self.path = DB_PATH

    async def start(self) -> None:
        async with aiosql.connect(self.path) as con:
            cursor = await con.cursor()
            request = '''CREATE TABLE IF NOT EXISTS users (
                          user_telegram_id INTEGER PRIMARY KEY NOT NULL,
                          status TEXT NOT NULL)'''
            await cursor.execute(request)

    async def add_user(self, uid: int) -> None:
        '''The method adds a user into the table'''
        await self.start()
        async with aiosql.connect(self.path) as con:
            cursor = await con.cursor()
            request = 'INSERT INTO users(user_telegram_id, status) VALUES(?, ?)'
            await cursor.execute(request, (uid, 'member'))

Когда бы не нажимал /start, ничего не происходит, и ошибки никакой тоже не показывает.
  • Вопрос задан
  • 69 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы