Пишу бота для телеграмм канала
Нужно было добавить баланс
Стал делать через SQLite
В базе данных есть столбец balance, но при запуске все равно выдает ошибку
sqlite3.OperationalError: no such column: balance
Что не так?
Колонка баланса есть в самой таблице
Ниже код базы данных
import sqlite3
from typing import Union
def create_sqlite_db_conn(db_file: str) -> sqlite3.Connection:
return sqlite3.connect(db_file)
def user_exists(cursor: sqlite3.Cursor, user_id: int) -> bool:
result = cursor.execute(
'SELECT * FROM users WHERE user_id = ?',
(user_id, )
).fetchall()
print(result)
return len(result) > 0
def add_user(cursor: sqlite3.Cursor, user_id: int, referrer_id: Union[int, None] = None):
cursor.execute(
'INSERT INTO users (user_id, referrer_id) VALUES (?,?)',
(user_id, referrer_id, )
)
def count_referals(cursor: sqlite3.Cursor, user_id: int) -> int:
return cursor.execute(
'SELECT COUNT(id) as count FROM users WHERE referrer_id = ?',
(user_id,)
).fetchone()[0]
def add_balance(cursor: sqlite3.Cursor, user_id: int, amount_rub: float):
curr_balance_rub = cursor.execute(
'SELECT balance FROM users WHERE user_id = ?',
(user_id, )
).fetchone()[0]
new_balance = curr_balance_rub + amount_rub
cursor.execute(
'UPDATE users SET balance = ? WHERE user_id = ?',
(new_balance, user_id, )
)
def user_balance(cursor: sqlite3.Cursor, user_id: int) -> float:
curr_balance_rub = cursor.execute(
'SELECT balance FROM users WHERE user_id = ?',
(user_id, )
).fetchone()[0]
return curr_balance_rub