agronholm / agronholm/sqlacodegen

Dataclass Mapping changed in sqalchemy 2.0

Đang mở
#248 12 bình luận 0 reaction 1 người được giao Được @sheinbergon nhận Xem trên GitHub
Ngôn ngữ chính
Python
Star
2.4k
Fork
284
Merge trung bình
2 ngày 1 giờ
Pull request đã merge (30 ngày)
1

Mô tả

Refer: https://docs.sqlalchemy.org/en/20/orm/dataclasses.html#orm-declarative-native-dataclasses

Current documented dataclass style is:

```python
from sqlalchemy.orm import DeclarativeBase
from sqlalchemy.orm import Mapped
from sqlalchemy.orm import mapped_column
from sqlalchemy.orm import MappedAsDataclass

class Base(MappedAsDataclass, DeclarativeBase):
"""subclasses will be converted to dataclasses"""

class User(Base):
__tablename__ = "user_account"

id: Mapped[int] = mapped_column(init=False, primary_key=True)
name: Mapped[str]
```

or at least:

```python
from sqlalchemy.orm import Mapped
from sqlalchemy.orm import mapped_column
from sqlalchemy.orm import registry

reg = registry()

@reg.mapped_as_dataclass
class User:
__tablename__ = "user_account"

id: Mapped[int] = mapped_column(init=False, primary_key=True)
name: Mapped[str]
```

Columns type should be `Mapped[int]` not `int` which is different with current sqlacodegen and the new `mapped_column` is much more readable.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.