feature/db #2

Merged
tliu93 merged 16 commits from feature/db into main 2025-09-18 14:28:18 +02:00
3 changed files with 8 additions and 8 deletions
Showing only changes of commit 64a2726c73 - Show all commits

View File

@@ -5,12 +5,13 @@ from typing import TYPE_CHECKING
from sqlalchemy import event
from sqlalchemy.pool import StaticPool
from sqlmodel import Session, SQLModel, create_engine
from sqlmodel import Session, create_engine
import trading_journal.db_migration
if TYPE_CHECKING:
from collections.abc import Generator
from sqlalchemy.engine import Connection
from sqlite3 import Connection as DBAPIConnection
class Database:
@@ -29,11 +30,9 @@ class Database:
if self._database_url.startswith("sqlite"):
def _enable_sqlite_pragmas(dbapi_conn: Connection, _connection_record: object) -> None:
def _enable_sqlite_pragmas(dbapi_conn: DBAPIConnection, _connection_record: object) -> None:
try:
cur = dbapi_conn.cursor()
cur.execute("PRAGMA journal_mode=WAL;")
cur.execute("PRAGMA synchronous=NORMAL;")
cur.execute("PRAGMA foreign_keys=ON;")
cur.execute("PRAGMA busy_timeout=30000;")
cur.close()

View File

@@ -3,7 +3,7 @@ from __future__ import annotations
from typing import Callable
from sqlalchemy import text
from sqlalchemy.engine import Engine
from sqlalchemy.engine import Connection, Engine
from sqlmodel import SQLModel
# 最新 schema 版本号
@@ -26,7 +26,7 @@ MIGRATIONS: dict[int, Callable[[Engine], None]] = {
}
def _get_sqlite_user_version(conn) -> int:
def _get_sqlite_user_version(conn: Connection) -> int:
row = conn.execute(text("PRAGMA user_version")).fetchone()
return int(row[0]) if row and row[0] is not None else 0

View File

@@ -2,6 +2,7 @@ from __future__ import annotations
from datetime import date, datetime # noqa: TC003
from enum import Enum
from typing import TYPE_CHECKING
from sqlmodel import Column, DateTime, Field, Relationship, SQLModel
from sqlmodel import Enum as SQLEnum