fix: remove ON CONFLICT clause after constraint removal
All checks were successful
Deploy Development / deploy (push) Successful in 43s
Build Test / lint-backend (push) Successful in 0s
Build Test / build-frontend (push) Successful in 13s

Migration 011 removed UNIQUE constraint (profile_id, date) to allow
multiple rest days per date, but INSERT still used ON CONFLICT.

Error: psycopg2.errors.InvalidColumnReference: there is no unique or
exclusion constraint matching the ON CONFLICT specification

Solution: Remove ON CONFLICT clause, use plain INSERT.
Multiple entries per date now allowed.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Lars 2026-03-22 17:05:06 +01:00
parent 6916e5b808
commit f2e2aff17f

View File

@ -93,15 +93,11 @@ def create_rest_day(
with get_db() as conn:
cur = get_cursor(conn)
# Upsert by (profile_id, date)
# Insert (multiple entries per date allowed)
cur.execute(
"""
INSERT INTO rest_days (profile_id, date, rest_config, note, created_at)
VALUES (%s, %s, %s, %s, CURRENT_TIMESTAMP)
ON CONFLICT (profile_id, date)
DO UPDATE SET
rest_config = EXCLUDED.rest_config,
note = EXCLUDED.note
RETURNING id, profile_id, date, rest_config, note, created_at
""",
(pid, data.date, Json(config_dict), data.note)