remove hardcoded db location

+ move Db engine to module
This commit is contained in:
cwilvx
2024-07-05 05:00:28 +03:00
parent a76e91cf5a
commit 727dea748c
5 changed files with 21 additions and 20 deletions
+3 -17
View File
@@ -1,7 +1,6 @@
from typing import Any
from sqlalchemy import (
create_engine,
delete,
func,
insert,
@@ -15,18 +14,7 @@ from sqlalchemy.orm import (
MappedAsDataclass,
)
# ============================================================
# TODO: Make sure the database is created before we run this.
fullpath = "/home/cwilvx/temp/swingmusic/swing.db"
engine = create_engine(
f"sqlite+pysqlite:///{fullpath}",
echo=False,
max_overflow=0,
pool_size=5,
)
# connection = engine.connect()
from app.db.engine import DbEngine
@event.listens_for(Engine, "connect")
def set_sqlite_pragma(dbapi_connection, connection_record):
@@ -38,12 +26,10 @@ def set_sqlite_pragma(dbapi_connection, connection_record):
class DbManager:
def __init__(self, commit: bool = False):
self.commit = commit
self.engine = create_engine(f"sqlite+pysqlite:///{fullpath}", echo=True)
self.conn = self.engine.connect()
self.conn = DbEngine.engine.connect()
def __enter__(self):
return self.conn.execution_options(preserve_rowcount=True)
# return connection
def __exit__(self, exc_type, exc_val, exc_tb):
if self.commit:
@@ -92,4 +78,4 @@ class Base(MappedAsDataclass, DeclarativeBase):
def create_all():
Base().metadata.create_all(engine)
Base().metadata.create_all(DbEngine.engine)
+5
View File
@@ -0,0 +1,5 @@
from sqlalchemy import Engine
class DbEngine:
engine: Engine = None
+2 -3
View File
@@ -12,8 +12,7 @@ from app.db.utils import (
)
from app.models import Album as AlbumModel
from app.utils.remove_duplicates import remove_duplicates
from app.db import engine
from app.db.engine import DbEngine
from sqlalchemy import JSON, Boolean, Integer, String, delete, select, update
from sqlalchemy.orm import Mapped, mapped_column, DeclarativeBase
@@ -25,7 +24,7 @@ def create_all():
"""
Create all the tables defined in this file.
"""
Base.metadata.create_all(engine)
Base.metadata.create_all(DbEngine.engine)
class Base(MasterBase, DeclarativeBase):
+10
View File
@@ -3,6 +3,7 @@ Module to setup Sqlite databases and tables.
Applies migrations.
"""
from sqlalchemy import create_engine
from app.db.userdata import UserTable
from app.db.sqlite import create_connection, create_tables, queries
from app.db.sqlite.auth import SQLiteAuthMethods as authdb
@@ -12,6 +13,8 @@ from app.settings import Db
from app.db import create_all
from app.db.libdata import create_all as create_all_libdata
from app.db.engine import DbEngine
def run_migrations():
"""
@@ -24,6 +27,13 @@ def setup_sqlite():
"""
Create Sqlite databases and tables.
"""
DbEngine.engine = create_engine(
f"sqlite+pysqlite:///{Db.get_app_db_path()}",
echo=False,
max_overflow=0,
pool_size=25,
)
create_all()
create_all_libdata()
+1
View File
@@ -3,6 +3,7 @@ name = "Swing music player"
version = "0.1.0"
description = ""
authors = ["geoffrey45 <geoffreymungai45@gmail.com>"]
package-mode = false
[tool.poetry.dependencies]
python = ">=3.10,<3.12"