first one
This commit is contained in:
8
bot/app/db/base.py
Normal file
8
bot/app/db/base.py
Normal 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
17
bot/app/db/engine.py
Normal 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
21
bot/app/db/models.py
Normal 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
15
bot/app/db/settings.py
Normal 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}"
|
||||
Reference in New Issue
Block a user