diff --git a/app/database.py b/app/database.py index 5a0ffd5..2d1338a 100644 --- a/app/database.py +++ b/app/database.py @@ -6,7 +6,7 @@ from sqlalchemy import MetaData from sqlalchemy import create_engine from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.ext.asyncio import create_async_engine -from sqlalchemy.orm import declarative_base +from sqlalchemy.orm import DeclarativeBase from sqlalchemy.orm import sessionmaker from app.config import DB_PATH @@ -25,7 +25,9 @@ async_engine = create_async_engine( ) async_session = sessionmaker(async_engine, class_=AsyncSession, expire_on_commit=False) -Base: Any = declarative_base() +class Base(DeclarativeBase): + pass + metadata_obj = MetaData() async def get_db_session() -> AsyncGenerator[AsyncSession, None]: diff --git a/app/models.py b/app/models.py index 295c78d..da646ff 100644 --- a/app/models.py +++ b/app/models.py @@ -10,7 +10,7 @@ from app.database import metadata_obj from app.activitypub import BaseActor from app.ap_object import BaseObject -from sqlalchemy import Column +from sqlalchemy.orm import mapped_column from sqlalchemy import Boolean from sqlalchemy import DateTime from sqlalchemy import Enum @@ -32,46 +32,46 @@ def now() -> dtime: class Actor(Base, BaseActor): __tablename__ = "actor" - id = Column(Integer, primary_key=True, index=True) - created_at = Column(DateTime(timezone=True), nullable=False, default=now) - updated_at = Column(DateTime(timezone=True), nullable=False, default=now) + id = mapped_column(Integer, primary_key=True, index=True) + created_at = mapped_column(DateTime(timezone=True), nullable=False, default=now) + updated_at = mapped_column(DateTime(timezone=True), nullable=False, default=now) - ap_id = Column(String, unique=True, nullable=False, index=True) - ap_actor = Column(JSON, nullable=False) - ap_type = Column(String, nullable=False) + ap_id = mapped_column(String, unique=True, nullable=False, index=True) + ap_actor = mapped_column(JSON, nullable=False) + ap_type = mapped_column(String, nullable=False) - handle = Column(String, nullable=True, index=True) + handle = mapped_column(String, nullable=True, index=True) - is_blocked = Column(Boolean, nullable=False, default=False, server_default="0") - is_deleted = Column(Boolean, nullable=False, default=False, server_default="0") + is_blocked = mapped_column(Boolean, nullable=False, default=False, server_default="0") + is_deleted = mapped_column(Boolean, nullable=False, default=False, server_default="0") class InboxObject(Base, BaseObject): __tablename__ = "inbox" - id = Column(Integer, primary_key=True, index=True) - created_at = Column(DateTime(timezone=True), nullable=False, default=now) - updated_at = Column(DateTime(timezone=True), nullable=False, default=now) + id = mapped_column(Integer, primary_key=True, index=True) + created_at = mapped_column(DateTime(timezone=True), nullable=False, default=now) + updated_at = mapped_column(DateTime(timezone=True), nullable=False, default=now) - actor_id = Column(Integer, ForeignKey("actor.id"), nullable=False) + actor_id = mapped_column(Integer, ForeignKey("actor.id"), nullable=False) actor: Mapped[Actor] = relationship(Actor, uselist=False) - server = Column(String, nullable=False) + server = mapped_column(String, nullable=False) - is_hidden_from_stream = Column(Boolean, nullable=False, default=False) + is_hidden_from_stream = mapped_column(Boolean, nullable=False, default=False) - ap_actor_id = Column(String, nullable=False) - ap_type = Column(String, nullable=False, index=True) - ap_id = Column(String, nullable=False, unique=True, index=True) - ap_context = Column(String, nullable=True) - ap_published_at = Column(DateTime(timezone=True), nullable=False) - ap_object = Column(JSON, nullable=False) - activity_object_ap_id = Column(String, nullable=True, index=True) + ap_actor_id = mapped_column(String, nullable=False) + ap_type = mapped_column(String, nullable=False, index=True) + ap_id = mapped_column(String, nullable=False, unique=True, index=True) + ap_context = mapped_column(String, nullable=True) + ap_published_at = mapped_column(DateTime(timezone=True), nullable=False) + ap_object = mapped_column(JSON, nullable=False) + activity_object_ap_id = mapped_column(String, nullable=True, index=True) - visibility = Column(Enum(ap.VisibilityEnum), nullable=False) + visibility = mapped_column(Enum(ap.VisibilityEnum), nullable=False) - is_deleted = Column(Boolean, nullable=False, default=False) - relates_to_inbox_object_id = Column( + is_deleted = mapped_column(Boolean, nullable=False, default=False) + relates_to_inbox_object_id = mapped_column( Integer, ForeignKey("inbox.id"), nullable=True, @@ -82,7 +82,7 @@ class InboxObject(Base, BaseObject): remote_side=id, uselist=False, ) - relates_to_outbox_object_id = Column( + relates_to_outbox_object_id = mapped_column( Integer, ForeignKey("outbox.id", use_alter=True), nullable=True, @@ -97,28 +97,28 @@ class InboxObject(Base, BaseObject): class OutboxObject(Base, BaseObject): __tablename__ = "outbox" - id = Column(Integer, primary_key=True, index=True) - created_at = Column(DateTime(timezone=True), nullable=False, default=now) - updated_at = Column(DateTime(timezone=True), nullable=False, default=now) + id = mapped_column(Integer, primary_key=True, index=True) + created_at = mapped_column(DateTime(timezone=True), nullable=False, default=now) + updated_at = mapped_column(DateTime(timezone=True), nullable=False, default=now) - public_id = Column(String, nullable=False, index=True) - slug = Column(String, nullable=True, index=True) + public_id = mapped_column(String, nullable=False, index=True) + slug = mapped_column(String, nullable=True, index=True) - ap_type = Column(String, nullable=False, index=True) - ap_id = Column(String, nullable=False, unique=True, index=True) - ap_context = Column(String, nullable=True) - ap_object = Column(JSON, nullable=False) + ap_type = mapped_column(String, nullable=False, index=True) + ap_id = mapped_column(String, nullable=False, unique=True, index=True) + ap_context = mapped_column(String, nullable=True) + ap_object = mapped_column(JSON, nullable=False) - activity_object_ap_id = Column(String, nullable=True, index=True) + activity_object_ap_id = mapped_column(String, nullable=True, index=True) - visibility = Column(Enum(ap.VisibilityEnum), nullable=False) + visibility = mapped_column(Enum(ap.VisibilityEnum), nullable=False) - is_deleted = Column(Boolean, nullable=False, default=False) - likes_count = Column(Integer, nullable=False, default=0) - announces_count = Column(Integer, nullable=False, default=0) - replies_count = Column(Integer, nullable=False, default=0) + is_deleted = mapped_column(Boolean, nullable=False, default=False) + likes_count = mapped_column(Integer, nullable=False, default=0) + announces_count = mapped_column(Integer, nullable=False, default=0) + replies_count = mapped_column(Integer, nullable=False, default=0) - relates_to_inbox_object_id = Column( + relates_to_inbox_object_id = mapped_column( Integer, ForeignKey("inbox.id", use_alter=True), nullable=True, @@ -128,7 +128,7 @@ class OutboxObject(Base, BaseObject): foreign_keys=relates_to_inbox_object_id, uselist=False, ) - relates_to_outbox_object_id = Column( + relates_to_outbox_object_id = mapped_column( Integer, ForeignKey("outbox.id"), nullable=True, @@ -140,7 +140,7 @@ class OutboxObject(Base, BaseObject): uselist=False, ) - relates_to_actor_id = Column( + relates_to_actor_id = mapped_column( Integer, ForeignKey("actor.id"), nullable=True, @@ -155,50 +155,50 @@ class OutboxObject(Base, BaseObject): class IncomingActivity(Base): __tablename__ = "ingress" - id = Column(Integer, primary_key=True, index=True) - created_at = Column(DateTime(timezone=True), nullable=False, default=now) + id = mapped_column(Integer, primary_key=True, index=True) + created_at = mapped_column(DateTime(timezone=True), nullable=False, default=now) - ap_id = Column(String, nullable=True, index=True) - ap_object = Column(JSON, nullable=True) + ap_id = mapped_column(String, nullable=True, index=True) + ap_object = mapped_column(JSON, nullable=True) class OutcomingActivity(Base): __tablename__ = "push" - id = Column(Integer, primary_key=True, index=True) - created_at = Column(DateTime(timezone=True), nullable=False, default=now) + id = mapped_column(Integer, primary_key=True, index=True) + created_at = mapped_column(DateTime(timezone=True), nullable=False, default=now) - ap_id = Column(String, nullable=True, index=True) - ap_object = Column(JSON, nullable=True) + ap_id = mapped_column(String, nullable=True, index=True) + ap_object = mapped_column(JSON, nullable=True) class Follower(Base): __tablename__ = "follower" - id = Column(Integer, primary_key=True, index=True) - created_at = Column(DateTime(timezone=True), nullable=False, default=now) - updated_at = Column(DateTime(timezone=True), nullable=False, default=now) + id = mapped_column(Integer, primary_key=True, index=True) + created_at = mapped_column(DateTime(timezone=True), nullable=False, default=now) + updated_at = mapped_column(DateTime(timezone=True), nullable=False, default=now) - actor_id = Column(Integer, ForeignKey("actor.id"), nullable=False, unique=True) + actor_id = mapped_column(Integer, ForeignKey("actor.id"), nullable=False, unique=True) actor: Mapped[Actor] = relationship(Actor, uselist=False) - inbox_object_id = Column(Integer, ForeignKey("inbox.id"), nullable=False) + inbox_object_id = mapped_column(Integer, ForeignKey("inbox.id"), nullable=False) inbox_object = relationship(InboxObject, uselist=False) - ap_actor_id = Column(String, nullable=False, unique=True) + ap_actor_id = mapped_column(String, nullable=False, unique=True) class Following(Base): __tablename__ = "following" - id = Column(Integer, primary_key=True, index=True) - created_at = Column(DateTime(timezone=True), nullable=False, default=now) - updated_at = Column(DateTime(timezone=True), nullable=False, default=now) + id = mapped_column(Integer, primary_key=True, index=True) + created_at = mapped_column(DateTime(timezone=True), nullable=False, default=now) + updated_at = mapped_column(DateTime(timezone=True), nullable=False, default=now) - actor_id = Column(Integer, ForeignKey("actor.id"), nullable=False, unique=True) + actor_id = mapped_column(Integer, ForeignKey("actor.id"), nullable=False, unique=True) actor: Mapped[Actor] = relationship(Actor, uselist=False) - outbox_object_id = Column(Integer, ForeignKey("outbox.id"), nullable=False) + outbox_object_id = mapped_column(Integer, ForeignKey("outbox.id"), nullable=False) outbox_object = relationship(OutboxObject, uselist=False) - ap_actor_id = Column(String, nullable=False, unique=True) + ap_actor_id = mapped_column(String, nullable=False, unique=True)