shinkan-jinkendo/backend/migrations/021_import_skills_from_matrix.sql
Lars 97c1bb0c8b
Some checks failed
Deploy Development / deploy (push) Successful in 36s
Test Suite / lint-backend (push) Successful in 1s
Test Suite / build-frontend (push) Successful in 5s
Test Suite / playwright-tests (push) Failing after 2m10s
feat: import 18 base skills from Fähigkeitsmatrix
Imported from https://karatetrainer.net/index.php?title=Fähigkeitsmatrix
- 9 skill categories (Kihon, Kumite, Kata, etc.)
- 18 core skills with descriptions

This enables skill-level assignments for imported exercises.
2026-04-27 10:26:10 +02:00

47 lines
2.4 KiB
SQL

-- Migration 021: Import Skills from Fähigkeitsmatrix
-- One-time import of skills with categories from karatetrainer.net
-- Source: https://karatetrainer.net/index.php?title=Fähigkeitsmatrix
-- Create skill categories first
INSERT INTO skill_categories (name, description, sort_order) VALUES
('Kihon', 'Grundtechniken', 1),
('Kumite', 'Kampf', 2),
('Kata', 'Formen', 3),
('Selbstverteidigung', 'Selbstschutz und Gefahrenabwehr', 4),
('Koordination', 'Koordinative Fähigkeiten', 5),
('Kondition', 'Konditionelle Fähigkeiten', 6),
('Kognition', 'Kognitive Fähigkeiten', 7),
('Soziale Fähigkeiten', 'Sozialkompetenzen', 8),
('Psychische Fähigkeiten', 'Mentale Stärke', 9)
ON CONFLICT (name) DO NOTHING;
-- Import skills (name unique, category by name lookup)
INSERT INTO skills (name, description, category_id)
SELECT
skill_name,
skill_description,
(SELECT id FROM skill_categories WHERE name = category_name LIMIT 1)
FROM (VALUES
('Dachi Waza', 'Standtechniken - stabiler Stand mit korrekter Gewichtsverteilung', 'Kihon'),
('Uke Waza', 'Blocktechniken - Abwehr von Angriffen', 'Kihon'),
('Zuki Waza', 'Stoßtechniken - gerade und kreisförmige Stöße', 'Kihon'),
('Geri Waza', 'Tritttechniken - verschiedene Kicks', 'Kihon'),
('Beinarbeit', 'Grundlegende Bewegungen im Kumite', 'Kumite'),
('Distanzkontrolle', 'Kontrolle der Kampfdistanz', 'Kumite'),
('Flexibilität', 'Beweglichkeit und Dehnfähigkeit', 'Kondition'),
('Präzision', 'Treffergenauigkeit', 'Kumite'),
('Bewegungsschnelligkeit', 'Schnelligkeit der Bewegungsausführung', 'Kondition'),
('Anaerobe Ausdauer', 'Ausdauer bei hoher Intensität', 'Kondition'),
('Schnelligkeitsausdauer', 'Ausdauer bei schnellen Bewegungen', 'Kondition'),
('Antizipation', 'Vorhersage gegnerischer Aktionen', 'Kognition'),
('Reaktionsschnelligkeit', 'Reaktion auf Reize', 'Koordination'),
('Timing', 'Zeitliche Abstimmung von Aktionen', 'Kumite'),
('Fokus', 'Konzentration auf das Wesentliche', 'Psychische Fähigkeiten'),
('Mentale Stärke', 'Psychische Belastbarkeit', 'Psychische Fähigkeiten'),
('Kata Ablauf', 'Korrekte Ausführung der Kata-Sequenz', 'Kata'),
('Bunkai', 'Anwendung der Kata-Techniken', 'Kata')
) AS skills(skill_name, skill_description, category_name)
ON CONFLICT (name) DO UPDATE SET
description = EXCLUDED.description,
category_id = EXCLUDED.category_id;