draft-estimation / models /database.py
PauloFN's picture
sqlite error
f4bcb74
raw
history blame
1.18 kB
from sqlalchemy import create_engine, Column, Integer, String, Float, DateTime, LargeBinary
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
# Define the database connection URL
DATABASE_URL = "sqlite:////tmp/ship_draft_reports.db"
# Create the SQLAlchemy engine
engine = create_engine(
DATABASE_URL, connect_args={"check_same_thread": False} # check_same_thread is for SQLite only
)
# Create a session factory
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
# Create a base class for declarative models
Base = declarative_base()
# Define the Report model
class Report(Base):
__tablename__ = "reports"
id = Column(Integer, primary_key=True, index=True)
ship_id = Column(String, index=True)
timestamp = Column(DateTime)
latitude = Column(Float)
longitude = Column(Float)
draft_measurement = Column(Float)
confidence_score = Column(Float) # New field
pdf_path = Column(String, unique=True)
image_bytes = Column(LargeBinary) # New field
def create_db_and_tables():
"""Function to create the database and tables."""
Base.metadata.create_all(bind=engine)