diff --git a/bot/Dockerfile b/bot/Dockerfile index 049045e..d202b3e 100644 --- a/bot/Dockerfile +++ b/bot/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.11.3 +FROM python:3.11.3-alpine WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt diff --git a/bot/app/db/base.py b/bot/app/db/base.py index 596673d..f53c1cd 100644 --- a/bot/app/db/base.py +++ b/bot/app/db/base.py @@ -1,8 +1,9 @@ from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker +from db.settings import Settings -engine = create_engine("postgresql+psycopg2://user:password@postgres:5432/db") +engine = create_engine(Settings().uri) Session = sessionmaker(bind=engine) Base = declarative_base() diff --git a/bot/app/db/engine.py b/bot/app/db/engine.py deleted file mode 100644 index c152cfd..0000000 --- a/bot/app/db/engine.py +++ /dev/null @@ -1,17 +0,0 @@ -from sqlalchemy import create_engine, MetaData -from db.settings import Settings -from sqlalchemy.orm import sessionmaker -from sqlalchemy.ext.declarative import declarative_base - - -class Database: - def __init__(self): - self.engine = create_engine("postgresql+psycopg2://user:password@postgres:5432/db") - self.meta = MetaData() - self.engine.connect() - self.meta.create_all(bind=self.engine) - self._Session = sessionmaker(bind=self.engine) - self.base = declarative_base() - - def session(self): - return self._Session diff --git a/bot/app/db/models.py b/bot/app/db/models.py index 6fc1d55..914726b 100644 --- a/bot/app/db/models.py +++ b/bot/app/db/models.py @@ -13,16 +13,16 @@ class User(Base): name = Column(String) username = Column(String) - -class Queue(Base): - __tablename__ = "queue" - - id = Column(Uuid, primary_key=True, default=uuid.uuid4()) - owner = relationship(User) - - -class QueueUser(Base): - __tablename__ = "queueuser" - - id = Column(Uuid, primary_key=True, default=uuid.uuid4()) - user_id = +# +# class Queue(Base): +# __tablename__ = "queue" +# +# id = Column(Uuid, primary_key=True, default=uuid.uuid4()) +# owner = relationship(User) +# +# +# class QueueUser(Base): +# __tablename__ = "queueuser" +# +# id = Column(Uuid, primary_key=True, default=uuid.uuid4()) +# user_id = diff --git a/bot/app/db/settings.py b/bot/app/db/settings.py index cb7b668..3affb82 100644 --- a/bot/app/db/settings.py +++ b/bot/app/db/settings.py @@ -1,15 +1,16 @@ from dataclasses import dataclass +import os @dataclass class Settings: - dialect: str = "postgresql" - driver: str = "psycopg2" - user: str = "user" - password: str = "password" - db_name: str = "db" - host: str = "postgres" - port: int = 5432 + dialect: str = os.getenv('DIALECT', "postgresql") + driver: str = os.getenv('DRIVER', "psycopg2") + user: str = os.getenv('USER', "user") + password: str = os.getenv('PASSWORD', "password") + db_name: str = os.getenv('DB_NAME', "db") + host: str = os.getenv('HOST', "postgres") + port: int = os.getenv('PORT', 5432) @property - def uri(self): + def uri(self) -> str: return f"{self.dialect}+{self.driver}://{self.user}:{self.password}@{self.host}:{self.port}/{self.db_name}" diff --git a/docker-compose.yml b/docker-compose.yml index 8f7f6ed..82e5019 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,6 +2,14 @@ services: bot: build: context: bot + environment: + DIALECT: postgresql + DRIVER: psycopg2 + USER: user + PASSWORD: password + DB_NAME: db + HOST: postgres + PORT: 5432 restart: always postgres: image: postgres:15.1