Ошибка Телеграм бот aiogram
import config
import logging
import asyncio
from datetime import datetime
from aiogram import Bot, Dispatcher, executor, types
from sqlighter import SQLighter
# задаем уровень логов
logging.basicConfig(level=logging.INFO)
# инициализируем бота
bot = Bot(token=config.API_TOKEN)
dp = Dispatcher(bot)
# инициализируем соединение с БД
db = SQLighter('db.db')
# Команда активации подписки
@dp.message_handler(commands=['subscribe'])
async def subscribe(message: types.Message):
if(not db.subscriber_exists(message.from_user.id)):
# если юзера нет в базе, добавляем его
db.add_subscriber(message.from_user.id)
else:
# если он уже есть, то просто обновляем ему статус подписки
db.update_subscription(message.from_user.id, True)
await message.answer("Вы успешно подписались на рассылку!\nЖдите, скоро выйдут новые обзоры и вы узнаете о них первыми =)")
# Команда отписки
@dp.message_handler(commands=['unsubscribe'])
async def unsubscribe(message: types.Message):
if(not db.subscriber_exists(message.from_user.id)):
# если юзера нет в базе, добавляем его с неактивной подпиской (запоминаем)
db.add_subscriber(message.from_user.id, False)
await message.answer("Вы итак не подписаны.")
else:
# если он уже есть, то просто обновляем ему статус подписки
db.update_subscription(message.from_user.id, False)
await message.answer("Вы успешно отписаны от рассылки.")
# получаем список подписчиков бота
subscriptions = db.get_subscriptions()
# запускаем лонг поллинг
if __name__ == '__main__':
executor.start_polling(dp, skip_updates=True)
Ошибка
ERROR:asyncio:Task exception was never retrieved
future: <Task finished name='Task-12' coro=<Dispatcher._process_polling_updates() done, defined at C:\Python39\lib\site-packages\aiogram\dispatcher\dispatcher.py:407> exception=OperationalError('no such table: subscriptions')>
Traceback (most recent call last):
File "C:\Python39\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 415, in _process_polling_updates
for responses in itertools.chain.from_iterable(await self.process_updates(updates, fast)):
File "C:\Python39\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 235, in process_updates
return await asyncio.gather(*tasks)
File "C:\Python39\lib\site-packages\aiogram\dispatcher\handler.py", line 117, in notify
response = await handler_obj.handler(*args, **partial_data)
File "C:\Python39\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 256, in process_update
return await self.message_handlers.notify(update.message)
File "C:\Python39\lib\site-packages\aiogram\dispatcher\handler.py", line 117, in notify
response = await handler_obj.handler(*args, **partial_data)
File "c:\Users\Admin\Desktop\ббб\bot.py", line 24, in subscribe
if(not db.subscriber_exists(message.from_user.id)):
File "c:\Users\Admin\Desktop\ббб\sqlighter.py", line 18, in subscriber_exists
result = self.cursor.execute('SELECT * FROM `subscriptions` WHERE `user_id` = ?', (user_id,)).fetchall()
sqlite3.OperationalError: no such table: subscriptions