From 71e3e82a4e100efca537b0b746f31736aec7376a Mon Sep 17 00:00:00 2001 From: patrick Date: Thu, 27 Aug 2026 00:30:20 +0200 Subject: [PATCH] fix(payouts): status-Spalte mit echtem DB-Default statt nur Python-Default Model hatte nur default= (ORM-seitig), kein server_default. Test-DB nutzt Base.metadata.create_all statt Alembic-Migrationen -> Spalte war dort NOT NULL ohne DB-Default, raw-SQL-Inserts (test_rls.py) schlugen fehl. Prod-DB hat den Default bereits aus Migration 0042 - hier nur Model nachgezogen. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01Gis16MnuwkYcivLrSxK1pD --- backend/app/models/hours_payout.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/backend/app/models/hours_payout.py b/backend/app/models/hours_payout.py index 61f5fd3..d490316 100644 --- a/backend/app/models/hours_payout.py +++ b/backend/app/models/hours_payout.py @@ -40,7 +40,10 @@ class HoursPayout(Base): period_year: Mapped[int | None] = mapped_column(Integer) # Abrechnungsmonat Jahr period_month: Mapped[int | None] = mapped_column(Integer) # Abrechnungsmonat Monat note: Mapped[str | None] = mapped_column(Text) # Notiz für Buchhaltung - status: Mapped[str] = mapped_column(String(12), nullable=False, default=PayoutStatus.APPROVED.value) + status: Mapped[str] = mapped_column( + String(12), nullable=False, + default=PayoutStatus.APPROVED.value, server_default=PayoutStatus.APPROVED.value, + ) rejection_reason: Mapped[str | None] = mapped_column(Text) created_by: Mapped[uuid.UUID] = mapped_column( UUID(as_uuid=True), ForeignKey("users.id", ondelete="SET NULL"),