mirror of
https://github.com/tcsenpai/swingmusic.git
synced 2025-06-06 03:05:35 +00:00
48 lines
1.1 KiB
Python
48 lines
1.1 KiB
Python
"""
|
|
This module contains the functions to interact with the SQLite database.
|
|
"""
|
|
|
|
import sqlite3
|
|
from pathlib import Path
|
|
from sqlite3 import Connection as SqlConn
|
|
|
|
from app.settings import APP_DB_PATH
|
|
|
|
|
|
def create_connection(db_file: str) -> SqlConn:
|
|
"""
|
|
Creates a connection to the specified database.
|
|
"""
|
|
conn = sqlite3.connect(db_file)
|
|
return conn
|
|
|
|
|
|
def get_sqlite_conn():
|
|
"""
|
|
It opens a connection to the database
|
|
:return: A connection to the database.
|
|
"""
|
|
return create_connection(APP_DB_PATH)
|
|
|
|
|
|
def create_tables(conn: SqlConn, sql_query: str):
|
|
"""
|
|
Executes the specifiend SQL file to create database tables.
|
|
"""
|
|
# with open(sql_query, "r", encoding="utf-8") as sql_file:
|
|
conn.executescript(sql_query)
|
|
|
|
|
|
def setup_search_db():
|
|
"""
|
|
Creates the search database.
|
|
"""
|
|
db = sqlite3.connect(":memory:")
|
|
sql_file = "queries/fts5.sql"
|
|
|
|
current_path = Path(__file__).parent.resolve()
|
|
sql_path = current_path.joinpath(sql_file)
|
|
|
|
with open(sql_path, "r", encoding="utf-8") as sql_file:
|
|
db.executescript(sql_file.read())
|