add database
This commit is contained in:
12
app/db/database.py
Normal file
12
app/db/database.py
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
from config import DATABASE_URL
|
||||||
|
from sqlalchemy.ext.asyncio import AsyncSession, create_async_engine
|
||||||
|
from sqlalchemy.orm import declarative_base, sessionmaker
|
||||||
|
|
||||||
|
engine = create_async_engine(DATABASE_URL, echo=True)
|
||||||
|
Base = declarative_base()
|
||||||
|
async_session = sessionmaker(bind=engine, expire_on_commit=False, class_=AsyncSession)
|
||||||
|
|
||||||
|
|
||||||
|
async def get_session() -> AsyncSession:
|
||||||
|
async with async_session() as session:
|
||||||
|
yield session
|
||||||
@@ -1,10 +1,14 @@
|
|||||||
import datetime as dt
|
import datetime as dt
|
||||||
|
|
||||||
from sqlalchemy import BigInteger, DateTime, ForeignKey, create_engine, func
|
from sqlalchemy import (
|
||||||
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, sessionmaker
|
BigInteger,
|
||||||
|
DateTime,
|
||||||
|
ForeignKey,
|
||||||
|
func,
|
||||||
|
)
|
||||||
|
from sqlalchemy.orm import Mapped, mapped_column
|
||||||
|
|
||||||
|
from app.db.database import Base
|
||||||
class Base(DeclarativeBase): ...
|
|
||||||
|
|
||||||
|
|
||||||
class User(Base):
|
class User(Base):
|
||||||
@@ -33,22 +37,3 @@ class UserEvent(Base):
|
|||||||
DateTime(timezone=True), server_default=func.now()
|
DateTime(timezone=True), server_default=func.now()
|
||||||
)
|
)
|
||||||
status: Mapped[str] = mapped_column(default="not confirmed")
|
status: Mapped[str] = mapped_column(default="not confirmed")
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
engine = create_engine("sqlite:///test.db")
|
|
||||||
SessionMaker = sessionmaker(engine)
|
|
||||||
Base.metadata.drop_all(engine)
|
|
||||||
Base.metadata.create_all(engine)
|
|
||||||
|
|
||||||
with SessionMaker() as session:
|
|
||||||
user = User(fullname = "Shevkunov Daniil", tg_id=12023)
|
|
||||||
event = Event(title="Event")
|
|
||||||
|
|
||||||
session.add_all([user, event])
|
|
||||||
session.flush()
|
|
||||||
user_event = UserEvent(user=user.id, event=event.id)
|
|
||||||
session.add(user_event)
|
|
||||||
session.commit()
|
|
||||||
# with SessionMaker as session:
|
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user