@Nekech

Как убрать ошибку sqlite3.OperationalError: no such column: balance?

Пишу бота для телеграмм канала
Нужно было добавить баланс
Стал делать через 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
  • Вопрос задан
  • 167 просмотров
Пригласить эксперта
Ответы на вопрос 1
@mr_diablol
У вас столбца "balance" нет в таблице "users".

cursor.execute('ALTER TABLE users ADD COLUMN balance REAL DEFAULT 0')
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
30 апр. 2024, в 16:03
2500 руб./за проект
30 апр. 2024, в 15:24
3000 руб./за проект
30 апр. 2024, в 15:11
500 руб./в час