Наследование SQLAlchemy не работает

Есть Base класс, от него наследуется класс Users

От класса Users наследуются классы Clients и Admins

При помощи Base.metadata.create_all все таблицы в БД создаются.

В таблице Users есть поля descripton и created_at, которые объявлены в Base.

В таблицах Clients и Admins этих полей нет. Также нет полей, которые были объявлены в Users (tg_id, username).

Есть только поля, которые были объявлены в самих классах Admins и Clients (id, admin_name и id, first_name соответственно)

Если в классах Admins и Clients не указывать поле id с ForeignKey, то выдаёт ошибку "не могу установить зависимость между Users и Admins/Clients Если указать ForeignKey к Base, то такая же ошибка (наследование же прописано от Users)

Собственно вопросы: Что нужно сделать, чтобы в Admins и Clients автоматически создавались поля, которые есть и в Base и в Users? (без копипасты явного объявления тех же самых полей, что и в родительских классах)

class Base(AsyncAttrs, DeclarativeBase):
    __tablename_ = "base"
    id: Mapped[int] = mapped_column(primary_key=True)
    description: Mapped[str | None]
    created_at: Mapped[datetime] = mapped_column(server_default=func.now())

class Users(Base):
    __tablename__ = "users"
    tg_id: Mapped[int | None] = mapped_column(BigInteger, unique=True)
    username: Mapped[str | None]

class Clients(Users):
    __tablename__ = "clients"
    id: Mapped[int] = mapped_column(ForeignKey("users.id", ondelete="CASCADE"), primary_key=True)
    first_name: Mapped[str | None]

class Admins(Users):
    __tablename__ = "admins"
    id: Mapped[int] = mapped_column(ForeignKey("users.id", ondelete="CASCADE"), primary_key=True)
    admin_name: Mapped[str | None]

Ответы (0 шт):