Дублирование моделей sqlalchemy и схем pydantic
Я делаю crud аккаунтов пользователей на fastapi. Есть модель:
class User(Base):
__tablename__ = 'users'
id: Mapped[Optional[int]] = mapped_column(primary_key=True)
login: Mapped[str] = mapped_column(String(128), nullable=False, unique=True)
pw: Mapped[str] = mapped_column(String(128), nullable=False)
и мне нужно написать схемы для crud операций, так должна выглядеть схема для обновления юзера
class UpdateUser(BaseModel):
login: Optional[str]
pw: Optional[str]
Т.к. crud схемы будут практически идентичны модели orm, назревает вопрос: как можно избежать дублирования моделей и схем? Как по мне это затрудняет рефакторинг в случае изменения модели orm
Источник: Stack Overflow на русском