diff --git a/backend/alembic/env.py b/backend/alembic/env.py index 6f81185..0a0a94b 100644 --- a/backend/alembic/env.py +++ b/backend/alembic/env.py @@ -10,7 +10,8 @@ from pathlib import Path sys.path.append(str(Path(__file__).resolve().parents[1])) # Import your models -from app.schemas import tables +from app.models.employee import Employee +from app.models.request import Request from app.database import Base # this is the Alembic Config object @@ -23,7 +24,7 @@ if config.config_file_name is not None: target_metadata = Base.metadata def get_url(): - return os.getenv("DATABASE_URL", "postgresql://support_user:support_password@localhost:5432/support_db") + return os.getenv("DATABASE_URL", "postgresql://postgres:postgres123@postgres:5432/support_db") def run_migrations_offline() -> None: url = get_url() @@ -49,7 +50,8 @@ def run_migrations_online() -> None: with connectable.connect() as connection: context.configure( connection=connection, - target_metadata=target_metadata + target_metadata=target_metadata, + compare_type=True ) with context.begin_transaction(): diff --git a/backend/app/database.py b/backend/app/database.py index b3284c7..d0e66ef 100644 --- a/backend/app/database.py +++ b/backend/app/database.py @@ -8,9 +8,14 @@ SQLALCHEMY_DATABASE_URL = os.getenv( "DATABASE_URL", "postgresql://postgres:postgres123@postgres:5432/support_db" ) -engine = create_engine(SQLALCHEMY_DATABASE_URL) -SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) +engine = create_engine( + SQLALCHEMY_DATABASE_URL, + pool_pre_ping=True, + pool_size=5, + max_overflow=10 +) +SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) Base = declarative_base() def get_db(): diff --git a/backend/app/models/__init__.py b/backend/app/models/__init__.py index beb65c1..43f9894 100644 --- a/backend/app/models/__init__.py +++ b/backend/app/models/__init__.py @@ -1,7 +1,5 @@ """Models initialization""" -from ..database import Base, engine from .employee import Employee from .request import Request -# Create all tables -Base.metadata.create_all(bind=engine) \ No newline at end of file +__all__ = ['Employee', 'Request'] \ No newline at end of file diff --git a/backend/app/models/employee.py b/backend/app/models/employee.py index 869757f..3d7959f 100644 --- a/backend/app/models/employee.py +++ b/backend/app/models/employee.py @@ -20,5 +20,6 @@ class Employee(Base): requests = relationship( "app.models.request.Request", back_populates="employee", - lazy="dynamic" + lazy="dynamic", + cascade="all, delete-orphan" ) \ No newline at end of file diff --git a/backend/app/models/request.py b/backend/app/models/request.py index 2a33887..891ab45 100644 --- a/backend/app/models/request.py +++ b/backend/app/models/request.py @@ -32,5 +32,6 @@ class Request(Base): employee = relationship( "app.models.employee.Employee", - back_populates="requests" + back_populates="requests", + lazy="joined" )