release: nexus btpanel session fix and app-v2
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Quick MySQL connectivity check (run: python3 scripts/check_mysql.py)."""
|
||||
import asyncio
|
||||
import os
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
ROOT = Path(__file__).resolve().parent.parent
|
||||
sys.path.insert(0, str(ROOT))
|
||||
|
||||
env_path = ROOT / ".env"
|
||||
if env_path.exists():
|
||||
for line in env_path.read_text(encoding="utf-8").splitlines():
|
||||
line = line.strip()
|
||||
if line and not line.startswith("#") and "=" in line:
|
||||
k, v = line.split("=", 1)
|
||||
os.environ.setdefault(k.strip(), v.strip())
|
||||
|
||||
HOST = os.environ.get("MYSQL_HOST", "127.0.0.1")
|
||||
PORT = int(os.environ.get("MYSQL_PORT", "3306"))
|
||||
USER = os.environ.get("MYSQL_USER", "root")
|
||||
PASSWORD = os.environ.get("MYSQL_PASSWORD", "")
|
||||
DB = os.environ.get("MYSQL_DATABASE", "nexus")
|
||||
|
||||
|
||||
async def main() -> int:
|
||||
import aiomysql
|
||||
|
||||
print(f"Connecting {USER}@{HOST}:{PORT} ...")
|
||||
try:
|
||||
conn = await aiomysql.connect(
|
||||
host=HOST, port=PORT, user=USER, password=PASSWORD, connect_timeout=15
|
||||
)
|
||||
async with conn.cursor() as cur:
|
||||
await cur.execute("SELECT VERSION()")
|
||||
print("VERSION:", (await cur.fetchone())[0])
|
||||
await cur.execute("SHOW DATABASES")
|
||||
dbs = [r[0] for r in await cur.fetchall()]
|
||||
print("DATABASES:", dbs)
|
||||
conn.close()
|
||||
except Exception as e:
|
||||
print("FAIL (server):", type(e).__name__, e)
|
||||
return 1
|
||||
|
||||
if DB not in dbs:
|
||||
print(f"DATABASE '{DB}' missing — run: python3 scripts/bootstrap_database.py")
|
||||
return 2
|
||||
|
||||
try:
|
||||
conn = await aiomysql.connect(
|
||||
host=HOST, port=PORT, user=USER, password=PASSWORD, db=DB, connect_timeout=15
|
||||
)
|
||||
async with conn.cursor() as cur:
|
||||
await cur.execute("SHOW TABLES")
|
||||
tables = sorted(r[0] for r in await cur.fetchall())
|
||||
print(f"TABLES in {DB} ({len(tables)}):", tables)
|
||||
conn.close()
|
||||
return 0 if tables else 3
|
||||
except Exception as e:
|
||||
print(f"FAIL ({DB}):", type(e).__name__, e)
|
||||
return 1
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
raise SystemExit(asyncio.run(main()))
|
||||
Reference in New Issue
Block a user