Проверка инициализации БД. Python, sqlite

Ребят, помогите разобраться, каким образом проверить инициализирована ли бд?

import os
import sqlite3

conn = sqlite3.connect(os.path.join('finance.db'))
cursor = conn.cursor()


def init_db():
    with open('create_db.sql', 'r') as f:
        sql = f.read()
    cursor.executescript(sql)
    conn.commit()

def check_init():
    info = cursor.execute("SELECT name FROM sqlite_master "
                   "WHERE type='table' AND name='categories'")
    table_exists = info.fetchall()
    print(table_exists)  # Возвращает []
    
    if table_exists is None:
        init_db()


check_init()

Я перепробовал разные варианты, но как-то не пришел к какой-то конкретике, то исключение прилетает, то пустой список. Все бы ничего, но у меня в sql скрипте создаются две таблички, наличие которых проверяется с помощью IF NOT EXISTS, тут проблем нет, но в том же скрипте одна из табличек тут же заполняется данными. Вот здесь и вываливаются проблемы, при повторной ининциализации одна из табличек пытается впихнуть в себя невпихуемое, бросаясь исключениями.

Хотелось бы найти способ проверить, существует ли хоть одна табличка в бд, и если нет, то только в том случае делать init().


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