mirror of
https://github.com/DRYTRIX/TimeTracker.git
synced 2026-01-04 02:30:01 -06:00
59 lines
1.8 KiB
Python
59 lines
1.8 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Simple database test script for TimeTracker
|
|
This script tests database connectivity and shows initialization status.
|
|
"""
|
|
|
|
import os
|
|
import sys
|
|
from sqlalchemy import create_engine, text, inspect
|
|
|
|
def test_database():
|
|
"""Test database connectivity and show status"""
|
|
url = os.getenv("DATABASE_URL", "")
|
|
|
|
if not url.startswith("postgresql"):
|
|
print("No PostgreSQL database configured")
|
|
return
|
|
|
|
print(f"Testing database connection to: {url}")
|
|
|
|
try:
|
|
# Test connection
|
|
engine = create_engine(url, pool_pre_ping=True)
|
|
with engine.connect() as conn:
|
|
result = conn.execute(text("SELECT version()"))
|
|
version = result.fetchone()[0]
|
|
print(f"✓ Database connection successful")
|
|
print(f" PostgreSQL version: {version}")
|
|
|
|
# Check tables
|
|
inspector = inspect(engine)
|
|
existing_tables = inspector.get_table_names()
|
|
required_tables = ['users', 'projects', 'time_entries', 'settings']
|
|
|
|
print(f"\nDatabase tables:")
|
|
for table in required_tables:
|
|
if table in existing_tables:
|
|
print(f" ✓ {table}")
|
|
else:
|
|
print(f" ✗ {table} (missing)")
|
|
|
|
missing_tables = [table for table in required_tables if table not in existing_tables]
|
|
|
|
if missing_tables:
|
|
print(f"\nDatabase is NOT fully initialized")
|
|
print(f"Missing tables: {missing_tables}")
|
|
return False
|
|
else:
|
|
print(f"\n✓ Database is fully initialized")
|
|
return True
|
|
|
|
except Exception as e:
|
|
print(f"✗ Database connection failed: {e}")
|
|
return False
|
|
|
|
if __name__ == "__main__":
|
|
success = test_database()
|
|
sys.exit(0 if success else 1)
|