switched to mariaDB

This commit is contained in:
GotthardG 2024-12-05 21:49:00 +01:00
parent 46199395ba
commit 996fc66d76
2 changed files with 38 additions and 31 deletions

View File

@ -4,10 +4,19 @@ from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
from app import models
import os
SQLALCHEMY_DATABASE_URL = "sqlite:///./test.db" # Use appropriate path or database URL
# Get username and password from environment variables
db_username = os.getenv("DB_USERNAME")
db_password = os.getenv("DB_PASSWORD")
# Construct the database URL
#SQLALCHEMY_DATABASE_URL = f"mysql://{db_username}:{db_password}@localhost:3306/aare_db"
SQLALCHEMY_DATABASE_URL = f"mysql://{db_username}:{db_password}@localhost:3306/aare_db"
# Remove the `connect_args` parameter
engine = create_engine(SQLALCHEMY_DATABASE_URL)
engine = create_engine(SQLALCHEMY_DATABASE_URL, connect_args={"check_same_thread": False})
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
Base = declarative_base()

View File

@ -9,9 +9,9 @@ class Shipment(Base):
__tablename__ = "shipments"
id = Column(Integer, primary_key=True, index=True, autoincrement=True)
shipment_name = Column(String, index=True)
shipment_name = Column(String(255), index=True)
shipment_date = Column(Date)
shipment_status = Column(String)
shipment_status = Column(String(255))
comments = Column(String(200), nullable=True)
contact_person_id = Column(Integer, ForeignKey("contact_persons.id"))
return_address_id = Column(Integer, ForeignKey("addresses.id"))
@ -27,11 +27,10 @@ class ContactPerson(Base):
__tablename__ = "contact_persons"
id = Column(Integer, primary_key=True, index=True, autoincrement=True)
firstname = Column(String)
lastname = Column(String)
phone_number = Column(String)
email = Column(String)
firstname = Column(String(255))
lastname = Column(String(255))
phone_number = Column(String(255))
email = Column(String(255))
shipments = relationship("Shipment", back_populates="contact_person")
@ -39,23 +38,23 @@ class Address(Base):
__tablename__ = "addresses"
id = Column(Integer, primary_key=True, index=True, autoincrement=True)
street = Column(String)
city = Column(String)
zipcode = Column(String)
country = Column(String)
street = Column(String(255))
city = Column(String(255))
zipcode = Column(String(255))
country = Column(String(255))
shipments = relationship("Shipment", back_populates="return_address")
class DewarType(Base):
__tablename__ = "dewar_types"
id = Column(Integer, primary_key=True, index=True, autoincrement=True)
dewar_type = Column(String, unique=True, index=True)
dewar_type = Column(String(255), unique=True, index=True)
serial_numbers = relationship("DewarSerialNumber", back_populates="dewar_type")
class DewarSerialNumber(Base):
__tablename__ = "dewar_serial_numbers"
id = Column(Integer, primary_key=True, index=True, autoincrement=True)
serial_number = Column(String, index=True)
serial_number = Column(String(255), index=True)
dewar_type_id = Column(Integer, ForeignKey('dewar_types.id'))
dewar_type = relationship("DewarType", back_populates="serial_numbers")
@ -64,16 +63,16 @@ class Dewar(Base):
__tablename__ = "dewars"
id = Column(Integer, primary_key=True, index=True, autoincrement=True)
dewar_name = Column(String)
dewar_name = Column(String(255))
dewar_type_id = Column(Integer, ForeignKey("dewar_types.id"), nullable=True)
dewar_serial_number_id = Column(Integer, ForeignKey("dewar_serial_numbers.id"), nullable=True)
tracking_number = Column(String)
status = Column(String)
tracking_number = Column(String(255))
status = Column(String(255))
ready_date = Column(Date, nullable=True)
shipping_date = Column(Date, nullable=True)
arrival_date = Column(Date, nullable=True)
returning_date = Column(Date, nullable=True)
unique_id = Column(String, unique=True, index=True, nullable=True)
unique_id = Column(String(255), unique=True, index=True, nullable=True)
shipment_id = Column(Integer, ForeignKey("shipments.id"))
return_address_id = Column(Integer, ForeignKey("addresses.id"))
contact_person_id = Column(Integer, ForeignKey("contact_persons.id"))
@ -103,8 +102,7 @@ class Proposal(Base):
__tablename__ = "proposals"
id = Column(Integer, primary_key=True, index=True, autoincrement=True)
number = Column(String)
number = Column(String(255))
shipments = relationship("Shipment", back_populates="proposal")
@ -112,8 +110,8 @@ class Puck(Base):
__tablename__ = 'pucks'
id = Column(Integer, primary_key=True, index=True, autoincrement=True)
puck_name = Column(String, index=True)
puck_type = Column(String)
puck_name = Column(String(255), index=True)
puck_type = Column(String(255))
puck_location_in_dewar = Column(Integer)
# Foreign keys and relationships
@ -126,7 +124,7 @@ class Sample(Base):
__tablename__ = 'samples'
id = Column(Integer, primary_key=True, index=True, autoincrement=True)
sample_name = Column(String, index=True) # Matches `sample_name` in data creation
sample_name = Column(String(255), index=True)
position = Column(Integer) # Matches `position` in data creation script
data_collection_parameters = Column(JSON, nullable=True)
@ -139,13 +137,13 @@ class Sample(Base):
class Slot(Base):
__tablename__ = "slots"
id = Column(String, primary_key=True, index=True)
qr_code = Column(String, unique=True, index=True)
label = Column(String)
qr_base = Column(String, nullable=True)
id = Column(Integer, primary_key=True, index=True)
qr_code = Column(String(255), unique=True, index=True)
label = Column(String(255))
qr_base = Column(String(255), nullable=True)
occupied = Column(Boolean, default=False)
needs_refill = Column(Boolean, default=False)
dewar_unique_id = Column(String, ForeignKey('dewars.unique_id'), nullable=True)
dewar_unique_id = Column(String(255), ForeignKey('dewars.unique_id'), nullable=True)
dewar = relationship("Dewar", back_populates="slot")
events = relationship("LogisticsEvent", back_populates="slot")
@ -155,7 +153,7 @@ class LogisticsEvent(Base):
id = Column(Integer, primary_key=True, index=True)
dewar_id = Column(Integer, ForeignKey('dewars.id'))
slot_id = Column(Integer, ForeignKey('slots.id'))
event_type = Column(String, index=True)
event_type = Column(String(255), index=True)
timestamp = Column(DateTime, default=datetime.utcnow)
dewar = relationship("Dewar", back_populates="events")
slot = relationship("Slot", back_populates="events")
@ -165,7 +163,7 @@ class SampleEvent(Base):
id = Column(Integer, primary_key=True, index=True)
sample_id = Column(Integer, ForeignKey('samples.id'))
event_type = Column(String, index=True)
event_type = Column(String(255), index=True)
timestamp = Column(DateTime, default=datetime.utcnow)
sample = relationship("Sample", back_populates="events")