Lots of changes to support Alembic and external DB

This commit is contained in:
James Pattinson
2025-12-04 17:54:49 +00:00
parent d33ad725cb
commit b6ad496cf0
14 changed files with 919 additions and 160 deletions

View File

@@ -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())