first one

This commit is contained in:
2023-06-05 16:31:04 +03:00
commit e25080d054
11 changed files with 165 additions and 0 deletions

8
bot/app/db/base.py Normal file
View File

@ -0,0 +1,8 @@
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
engine = create_engine("postgresql+psycopg2://user:password@postgres:5432/db")
Session = sessionmaker(bind=engine)
Base = declarative_base()

17
bot/app/db/engine.py Normal file
View File

@ -0,0 +1,17 @@
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

21
bot/app/db/models.py Normal file
View File

@ -0,0 +1,21 @@
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String, BigInteger, Uuid
from sqlalchemy.orm import relationship
import uuid
from db.base import Base
class User(Base):
__tablename__ = "user"
id = Column(BigInteger, primary_key=True)
name = Column(String)
username = Column(String)
#
#
# class Queue(Base):
# __tablename__ = "queue"
#
# id = Column(Uuid, primary_key=True, default=uuid.uuid4())
# owner = relationship(User)

15
bot/app/db/settings.py Normal file
View File

@ -0,0 +1,15 @@
from dataclasses import dataclass
@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
@property
def uri(self):
return f"{self.dialect}+{self.driver}://{self.user}:{self.password}@{self.host}:{self.port}/{self.db_name}"