Lots of changes to support Alembic and external DB
This commit is contained in:
@@ -69,7 +69,29 @@ async def root():
|
||||
|
||||
@app.get("/health")
|
||||
async def health_check():
|
||||
return {"status": "healthy", "timestamp": "2024-01-01T00:00:00Z"}
|
||||
"""Health check endpoint with database connectivity verification"""
|
||||
from datetime import datetime
|
||||
from sqlalchemy import text
|
||||
from app.db.session import SessionLocal
|
||||
|
||||
health_status = {
|
||||
"status": "healthy",
|
||||
"timestamp": datetime.utcnow().isoformat() + "Z",
|
||||
"version": "2.0.0"
|
||||
}
|
||||
|
||||
# Check database connectivity
|
||||
try:
|
||||
db = SessionLocal()
|
||||
db.execute(text("SELECT 1"))
|
||||
db.close()
|
||||
health_status["database"] = "connected"
|
||||
except Exception as e:
|
||||
health_status["status"] = "unhealthy"
|
||||
health_status["database"] = "disconnected"
|
||||
health_status["error"] = str(e)
|
||||
|
||||
return health_status
|
||||
|
||||
# Include API router
|
||||
app.include_router(api_router, prefix=settings.api_v1_str)
|
||||
|
||||
@@ -23,26 +23,27 @@ class PPRRecord(Base):
|
||||
__tablename__ = "submitted"
|
||||
|
||||
id = Column(BigInteger, primary_key=True, autoincrement=True)
|
||||
status = Column(SQLEnum(PPRStatus), nullable=False, default=PPRStatus.NEW)
|
||||
ac_reg = Column(String(16), nullable=False)
|
||||
status = Column(SQLEnum(PPRStatus), nullable=False, default=PPRStatus.NEW, index=True)
|
||||
ac_reg = Column(String(16), nullable=False, index=True)
|
||||
ac_type = Column(String(32), nullable=False)
|
||||
ac_call = Column(String(16), nullable=True)
|
||||
captain = Column(String(64), nullable=False)
|
||||
fuel = Column(String(16), nullable=True)
|
||||
in_from = Column(String(64), nullable=False)
|
||||
eta = Column(DateTime, nullable=False)
|
||||
eta = Column(DateTime, nullable=False, index=True)
|
||||
pob_in = Column(Integer, nullable=False)
|
||||
out_to = Column(String(64), nullable=True)
|
||||
etd = Column(DateTime, nullable=True)
|
||||
etd = Column(DateTime, nullable=True, index=True)
|
||||
pob_out = Column(Integer, nullable=True)
|
||||
email = Column(String(128), nullable=True)
|
||||
phone = Column(String(16), nullable=True)
|
||||
notes = Column(String(2000), nullable=True)
|
||||
notes = Column(Text, nullable=True)
|
||||
landed_dt = Column(DateTime, nullable=True)
|
||||
departed_dt = Column(DateTime, nullable=True)
|
||||
created_by = Column(String(16), nullable=True)
|
||||
submitted_dt = Column(DateTime, nullable=False, server_default=func.current_timestamp())
|
||||
public_token = Column(String(128), nullable=True, unique=True)
|
||||
created_by = Column(String(16), nullable=True, index=True)
|
||||
submitted_dt = Column(DateTime, nullable=False, server_default=func.current_timestamp(), index=True)
|
||||
public_token = Column(String(128), nullable=True, unique=True, index=True)
|
||||
updated_at = Column(DateTime, nullable=False, server_default=func.current_timestamp(), onupdate=func.current_timestamp())
|
||||
|
||||
|
||||
class User(Base):
|
||||
@@ -52,17 +53,22 @@ class User(Base):
|
||||
username = Column(String(50), nullable=False, unique=True, index=True)
|
||||
password = Column(String(255), nullable=False)
|
||||
role = Column(SQLEnum(UserRole), nullable=False, default=UserRole.READ_ONLY)
|
||||
email = Column(String(128), nullable=True)
|
||||
full_name = Column(String(100), nullable=True)
|
||||
is_active = Column(Integer, nullable=False, default=1) # Using Integer for BOOLEAN
|
||||
created_at = Column(DateTime, nullable=False, server_default=func.current_timestamp())
|
||||
updated_at = Column(DateTime, nullable=False, server_default=func.current_timestamp(), onupdate=func.current_timestamp())
|
||||
|
||||
|
||||
class Journal(Base):
|
||||
__tablename__ = "journal"
|
||||
|
||||
id = Column(BigInteger, primary_key=True, autoincrement=True)
|
||||
ppr_id = Column(Integer, nullable=False, index=True)
|
||||
ppr_id = Column(BigInteger, nullable=False, index=True) # Changed to BigInteger to match submitted.id
|
||||
entry = Column(Text, nullable=False)
|
||||
user = Column(Text, nullable=False)
|
||||
ip = Column(Text, nullable=False)
|
||||
entry_dt = Column(DateTime, nullable=False, server_default=func.current_timestamp())
|
||||
user = Column(String(50), nullable=False, index=True)
|
||||
ip = Column(String(45), nullable=False)
|
||||
entry_dt = Column(DateTime, nullable=False, server_default=func.current_timestamp(), index=True)
|
||||
|
||||
|
||||
class Airport(Base):
|
||||
@@ -85,12 +91,12 @@ class Aircraft(Base):
|
||||
__tablename__ = "aircraft"
|
||||
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
icao24 = Column(String(6), nullable=True)
|
||||
icao24 = Column(String(6), nullable=True, index=True)
|
||||
registration = Column(String(25), nullable=True, index=True)
|
||||
manufacturer_icao = Column(String(50), nullable=True)
|
||||
type_code = Column(String(30), nullable=True)
|
||||
type_code = Column(String(30), nullable=True, index=True)
|
||||
manufacturer_name = Column(String(255), nullable=True)
|
||||
model = Column(String(255), nullable=True)
|
||||
clean_reg = Column(String(25), nullable=True, index=True)
|
||||
created_at = Column(DateTime, nullable=False, server_default=func.current_timestamp())
|
||||
updated_at = Column(DateTime, nullable=False, server_default=func.current_timestamp())
|
||||
updated_at = Column(DateTime, nullable=False, server_default=func.current_timestamp(), onupdate=func.current_timestamp())
|
||||
Reference in New Issue
Block a user