Skip to content

sqlalchemy v2.0.36 MappedAsDataclass #146

@benedikt-bartscher

Description

@benedikt-bartscher

sqlalchemy introduced a new check/validation which breaks sqlalchemy-history compability with MappedAsDataclass

from sqlalchemy.orm import DeclarativeBase, Mapped, MappedAsDataclass, mapped_column
from sqlalchemy_history import make_versioned

make_versioned(user_cls="")


class Base(MappedAsDataclass, DeclarativeBase):
    pass


class MyModel(Base):
    __versioned__ = {}
    __tablename__ = "my_model"
    id: Mapped[int] = mapped_column(primary_key=True)


_ = MyModel(id=1)
sqlalchemy.exc.InvalidRequestError: Class <class 'sqlalchemy_history.model_builder.MyModelVersion'> already defines a '__table__'. ORM Annotated Dataclasses do not support a pre-existing '__table__' element

upstream refs:
sqlalchemy/sqlalchemy#11973
sqlalchemy/sqlalchemy@270b46c

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions