This commit is contained in:
2023-06-06 12:37:16 +03:00
parent 5372a6dfb2
commit e37e3db701
6 changed files with 33 additions and 40 deletions

View File

@ -1,4 +1,4 @@
FROM python:3.11.3 FROM python:3.11.3-alpine
WORKDIR /app WORKDIR /app
COPY requirements.txt . COPY requirements.txt .
RUN pip install -r requirements.txt RUN pip install -r requirements.txt

View File

@ -1,8 +1,9 @@
from sqlalchemy import create_engine from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker 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) Session = sessionmaker(bind=engine)
Base = declarative_base() Base = declarative_base()

View File

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

View File

@ -13,16 +13,16 @@ class User(Base):
name = Column(String) name = Column(String)
username = Column(String) username = Column(String)
#
class Queue(Base): # class Queue(Base):
__tablename__ = "queue" # __tablename__ = "queue"
#
id = Column(Uuid, primary_key=True, default=uuid.uuid4()) # id = Column(Uuid, primary_key=True, default=uuid.uuid4())
owner = relationship(User) # owner = relationship(User)
#
#
class QueueUser(Base): # class QueueUser(Base):
__tablename__ = "queueuser" # __tablename__ = "queueuser"
#
id = Column(Uuid, primary_key=True, default=uuid.uuid4()) # id = Column(Uuid, primary_key=True, default=uuid.uuid4())
user_id = # user_id =

View File

@ -1,15 +1,16 @@
from dataclasses import dataclass from dataclasses import dataclass
import os
@dataclass @dataclass
class Settings: class Settings:
dialect: str = "postgresql" dialect: str = os.getenv('DIALECT', "postgresql")
driver: str = "psycopg2" driver: str = os.getenv('DRIVER', "psycopg2")
user: str = "user" user: str = os.getenv('USER', "user")
password: str = "password" password: str = os.getenv('PASSWORD', "password")
db_name: str = "db" db_name: str = os.getenv('DB_NAME', "db")
host: str = "postgres" host: str = os.getenv('HOST', "postgres")
port: int = 5432 port: int = os.getenv('PORT', 5432)
@property @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}" return f"{self.dialect}+{self.driver}://{self.user}:{self.password}@{self.host}:{self.port}/{self.db_name}"

View File

@ -2,6 +2,14 @@ services:
bot: bot:
build: build:
context: bot context: bot
environment:
DIALECT: postgresql
DRIVER: psycopg2
USER: user
PASSWORD: password
DB_NAME: db
HOST: postgres
PORT: 5432
restart: always restart: always
postgres: postgres:
image: postgres:15.1 image: postgres:15.1