При работе с БД Ошибка:SQLite objects created in a thread can only be used in that same thread

основной код:

import telebot
import sqlite3
from telebot import types
from db import Database

*здесь идут токены ботов*

conn = sqlite3.connect('wDataBase.db', check_same_thread=False)
db = Database('wDataBase.db')

print("Это 1 файл")
bot_first = telebot.TeleBot(TOKEN_FIRST_BOT)
bot_second = telebot.TeleBot(TOKEN_SECOND_BOT)


@bot_first.message_handler(commands=['start'])
def start_first_bot(message):
        if not db.user_exists(message.from_user.id):
            start_command = message.text
            referrer_worker_id = str(start_command[7:])
            if str(referrer_worker_id) != "":
                if str(referrer_worker_id) != str(message.from_user.id):
                    db.add_user(message.from_user.id, referrer_worker_id)
                    try:
                        bot_first.send_message("По вашей ссылке зареган новый пользователь!")
                    except:
                        pass
                else:
                    db.add_user(message.from_user.id)
                    bot_first.send_message(message.from_user.id, "Нельзя регистрировать по собственной реферальной ссылке!")
            else:
                db.add_user(message.from_user.id)

код sql:

import sqlite3

class Database:
    def __init__(self, db_file):
        self.connection = sqlite3.connect(db_file)
        self.cursor = self.connection.cursor()
    
    def user_exists(self, worker_id):
        with self.connection:
            result = self.cursor.execute("SELECT * FROM 'users' WHERE 'worker_id' = ?", (worker_id,)).fetchall() #здесь получаем массив пользователей, если он есть то в массиве будет только одна запись
            return bool(len(result))
        
    def add_user(self, worker_id, referrer_worker_id=None):
        with self.connection:
            if referrer_worker_id != None:
                return self.cursor.execute("INSERT INTO 'shit' ('worker_id'), 'referrer_worker_id') VALUES (?,?) ", (worker_id, referrer_worker_id,))
            else:
                return self.cursor.execute("INSERT INTO 'users' ('worker_id') VALUES (?) ", (worker_id,))

    def count_referals(self, worker_id):
        with self.connection:
            return self.cursor.execute("SELECT COUNT('id') as count FROM 'users' WHERE 'referrer_worker_id' = ?", (worker_id,)).fetchone()[0]

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