Не видит таблицу SQlite3
столкнулся с проблемой. Файл бд лежит в одной дериктории с скриптом. Не понимаю что не так.
import sqlite3
conn = sqlite3.connect('db.db')
cursor = conn.cursor()
id = 317220077
cursor.execute('SELECT * FROM accounts WHERE id = ?', (id,)).fetchall()
conn.close()
трейс: sqlite3.OperationalError: no such table: accounts
Ответы (1 шт):
Автор решения: Maxim Timakov
→ Ссылка
Подобное может происходить, если текущая директория не совпадает с директорией, в которой расположена база данных.
При этом sqlite молча создает новую пустую базу данных.
Чтобы этого избежать нужно указывать полный путь к БД.
Для получения директории, в которой расположен скрипт можно использовать следующий код
from os import path
def get_script_dir():
abs_path = path.abspath(__file__) # полный путь к файлу скрипта
return path.dirname(abs_path)
Получим полное имя файла БД:
DB_NAME = 'db.db'
DB_FILE = get_script_dir() + path.sep + DB_NAME