fix(workflow): Duplicate - JSON-encode JSONB fields
**Error:** ``` psycopg2.ProgrammingError: can't adapt type 'dict' ``` **Root Cause:** - duplicate_prompt passed Python dicts directly to SQL INSERT - JSONB fields from r2d() are already deserialized by psycopg2 - PostgreSQL expects JSON strings for JSONB columns **Fix:** - Added json.dumps() for all JSONB fields before INSERT: - stages, output_schema, question_augmentations, graph_data - Same pattern as import function Files changed: - backend/routers/prompts.py: JSON-encode JSONB in duplicate_prompt Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
ff8104a533
commit
10d24bbef7
|
|
@ -364,6 +364,12 @@ def duplicate_prompt(prompt_id: str, session: dict=Depends(require_admin)):
|
|||
|
||||
new_display_name = f"{original.get('display_name') or original['name']} (Kopie)"
|
||||
|
||||
# Prepare JSONB fields (convert dict/list to JSON string if needed)
|
||||
stages_json = json.dumps(original['stages']) if original.get('stages') else None
|
||||
output_schema_json = json.dumps(original['output_schema']) if original.get('output_schema') else None
|
||||
question_aug_json = json.dumps(original['question_augmentations']) if original.get('question_augmentations') else None
|
||||
graph_data_json = json.dumps(original['graph_data']) if original.get('graph_data') else None
|
||||
|
||||
cur.execute(
|
||||
"""INSERT INTO ai_prompts (
|
||||
id, name, slug, display_name, description, template, category,
|
||||
|
|
@ -379,9 +385,9 @@ def duplicate_prompt(prompt_id: str, session: dict=Depends(require_admin)):
|
|||
(new_id, new_name, new_slug, new_display_name,
|
||||
original.get('description'), original.get('template'),
|
||||
original.get('category', 'ganzheitlich'),
|
||||
original.get('type', 'pipeline'), original.get('stages'),
|
||||
original.get('output_format', 'text'), original.get('output_schema'),
|
||||
original.get('question_augmentations'), original.get('graph_data'),
|
||||
original.get('type', 'pipeline'), stages_json,
|
||||
original.get('output_format', 'text'), output_schema_json,
|
||||
question_aug_json, graph_data_json,
|
||||
original.get('active', True), original.get('sort_order', 0))
|
||||
)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user