notebookvb
This commit is contained in:
+8
-5
@@ -12,20 +12,23 @@ from typing import Optional
|
||||
from mcp.server.fastmcp import FastMCP
|
||||
|
||||
sys.path.insert(0, str(Path(__file__).resolve().parent))
|
||||
from Knihovny.medicus_db import get_medicus_connection
|
||||
from Knihovny.medicus_db import get_medicus_connection_reconnecting
|
||||
|
||||
# Všechny logy MUSÍ jít na stderr — stdout je rezervován pro JSON-RPC
|
||||
def log(msg: str):
|
||||
print(msg, file=sys.stderr, flush=True)
|
||||
|
||||
|
||||
# Připojení k Firebirdu
|
||||
# Připojení k Firebirdu — lazy + auto-reconnect.
|
||||
# Spojení se naváže až při prvním dotazu a samo se obnoví, když umře
|
||||
# (uspání notebooku, denní gbak restore na serveru). Proto nepadáme při startu,
|
||||
# i kdyby DB zrovna nebyla dostupná.
|
||||
conn = get_medicus_connection_reconnecting()
|
||||
try:
|
||||
conn = get_medicus_connection()
|
||||
conn.cursor().execute("SELECT 1 FROM RDB$DATABASE")
|
||||
log("✓ Připojeno k Firebirdu (Medicus)")
|
||||
except Exception as e:
|
||||
log(f"✗ Chyba připojení k Firebirdu: {e}")
|
||||
sys.exit(1)
|
||||
log(f"⚠ Firebird zatím nedostupný, zkusím se připojit při prvním dotazu: {e}")
|
||||
|
||||
|
||||
def rows_to_json(rows, description):
|
||||
|
||||
Reference in New Issue
Block a user