All checks were successful
Deploy Development / deploy (push) Successful in 43s
Test Suite / pytest-backend (push) Successful in 44s
Test Suite / lint-backend (push) Successful in 1s
Test Suite / build-frontend (push) Successful in 16s
Test Suite / k6 /health Baseline (push) Successful in 35s
Test Suite / playwright-tests (push) Successful in 1m14s
- Modified migration 092 to clarify the purpose of the catalog prompt slots and removed unnecessary seed data, emphasizing that primary focus data is tenant-specific. - Updated migration 094 to eliminate the full seed process, reflecting the decision to manage catalog prompt slots content through the admin UI or fallback mechanisms. - Revised documentation to indicate the absence of migration seeds and the reliance on runtime fallbacks for catalog prompt slots, ensuring clarity for future development.
87 lines
2.8 KiB
SQL
87 lines
2.8 KiB
SQL
-- Migration 092: Katalog-Prompt-Slots (H2) — Slot-Typ-Vokabular + leere Wertetabelle
|
|
-- Keine Inhalts-Seeds: Stammdaten (Primärfokus etc.) sind mandantenspezifisch.
|
|
-- Slot-Inhalte: Admin-UI oder catalog_slot_fallbacks.py (Namens-Match zur Laufzeit).
|
|
|
|
CREATE TABLE IF NOT EXISTS catalog_prompt_slot_types (
|
|
slot_key VARCHAR(64) PRIMARY KEY,
|
|
display_name VARCHAR(200) NOT NULL,
|
|
description TEXT,
|
|
applicable_kinds TEXT[] NOT NULL DEFAULT '{}',
|
|
sort_order INT DEFAULT 99,
|
|
for_llm BOOLEAN NOT NULL DEFAULT true,
|
|
for_code BOOLEAN NOT NULL DEFAULT false,
|
|
created_at TIMESTAMP DEFAULT NOW(),
|
|
updated_at TIMESTAMP DEFAULT NOW()
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS catalog_prompt_slots (
|
|
id SERIAL PRIMARY KEY,
|
|
catalog_kind VARCHAR(32) NOT NULL,
|
|
catalog_id INT NOT NULL,
|
|
slot_key VARCHAR(64) NOT NULL REFERENCES catalog_prompt_slot_types(slot_key) ON DELETE CASCADE,
|
|
content TEXT NOT NULL DEFAULT '',
|
|
updated_at TIMESTAMP DEFAULT NOW(),
|
|
UNIQUE (catalog_kind, catalog_id, slot_key)
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_catalog_prompt_slots_kind_id
|
|
ON catalog_prompt_slots (catalog_kind, catalog_id);
|
|
|
|
INSERT INTO catalog_prompt_slot_types (slot_key, display_name, description, applicable_kinds, sort_order, for_llm, for_code)
|
|
VALUES
|
|
(
|
|
'description',
|
|
'Allgemeine Beschreibung',
|
|
'Fachliche Einordnung des Katalog-Eintrags für Planungs-KI.',
|
|
ARRAY['focus_area', 'training_type', 'target_group', 'style_direction'],
|
|
10,
|
|
true,
|
|
false
|
|
),
|
|
(
|
|
'hints_on_progression',
|
|
'Hinweise Progressionsgraph',
|
|
'Didaktik für Roadmap, Major Steps und Stufenspezifikation.',
|
|
ARRAY['focus_area', 'training_type', 'target_group', 'style_direction'],
|
|
20,
|
|
true,
|
|
false
|
|
),
|
|
(
|
|
'hints_on_exercise',
|
|
'Hinweise Übungsanlage',
|
|
'Kontext für Gap-Fill, Übungs-KI und Schnellanlage.',
|
|
ARRAY['focus_area', 'training_type', 'target_group', 'style_direction'],
|
|
30,
|
|
true,
|
|
false
|
|
),
|
|
(
|
|
'hints_on_path_qa',
|
|
'Hinweise Pfad-QS',
|
|
'Bewertungsmaßstäbe für Pfad-Qualitätssicherung.',
|
|
ARRAY['focus_area', 'training_type', 'target_group', 'style_direction'],
|
|
40,
|
|
true,
|
|
false
|
|
),
|
|
(
|
|
'anti_patterns',
|
|
'Anti-Patterns',
|
|
'Explizite Fehlbewertungen vermeiden.',
|
|
ARRAY['focus_area', 'training_type', 'target_group', 'style_direction'],
|
|
50,
|
|
true,
|
|
false
|
|
),
|
|
(
|
|
'rematch_guard',
|
|
'Rematch-Guard',
|
|
'Wann kein Auto-Rematch sinnvoll ist (primär Code-Logik).',
|
|
ARRAY['focus_area', 'training_type', 'target_group', 'style_direction'],
|
|
60,
|
|
false,
|
|
true
|
|
)
|
|
ON CONFLICT (slot_key) DO NOTHING;
|