refactor teaching domain naming to course/course_section/course_group

Add diesel migrations and synchronize backend/frontend model fields plus jsonb key migration to support generic teaching subjects beyond piano-specific naming.

Made-with: Cursor
This commit is contained in:
2026-04-23 17:16:10 +08:00
commit c843fecbce
19 changed files with 17353 additions and 0 deletions
@@ -0,0 +1,27 @@
ALTER TABLE lianxi RENAME COLUMN jihua_course_section_id TO jihua_qumu_section_id;
ALTER TABLE lianxi RENAME COLUMN daka_course_section_id TO daka_qumu_section_id;
ALTER TABLE jihua RENAME COLUMN course_sections TO qumu_sections;
ALTER TABLE daka RENAME COLUMN course_sections TO qumu_sections;
ALTER TABLE jihua_course_section RENAME COLUMN course_section_id TO qumu_section_id;
ALTER TABLE daka_course_section RENAME COLUMN course_section_id TO qumu_section_id;
ALTER TABLE course_group RENAME COLUMN course_section_ids TO qumu_section_ids;
ALTER TABLE course_section RENAME COLUMN course_category_name TO qumu_category_name;
ALTER TABLE course_section RENAME COLUMN course_category_key TO qumu_category_key;
ALTER TABLE course_section RENAME COLUMN course_text TO qumu_text;
ALTER TABLE course_section RENAME COLUMN course_name TO qumu_name;
ALTER TABLE course_section RENAME COLUMN course_type TO qumu_type;
ALTER TABLE course_section RENAME COLUMN course_id TO qumu_id;
ALTER TABLE course_info RENAME COLUMN course_id TO qumu_id;
ALTER TABLE course RENAME COLUMN course_type TO qumu_type;
ALTER TABLE course_info RENAME TO qumu_info;
ALTER TABLE jihua_course_section RENAME TO jihua_qumu_section;
ALTER TABLE daka_course_section RENAME TO daka_qumu_section;
ALTER TABLE course_group RENAME TO qumu_section_group;
ALTER TABLE course_section RENAME TO qumu_section;
ALTER TABLE course RENAME TO qumu;
@@ -0,0 +1,27 @@
ALTER TABLE qumu RENAME TO course;
ALTER TABLE qumu_section RENAME TO course_section;
ALTER TABLE qumu_section_group RENAME TO course_group;
ALTER TABLE daka_qumu_section RENAME TO daka_course_section;
ALTER TABLE jihua_qumu_section RENAME TO jihua_course_section;
ALTER TABLE qumu_info RENAME TO course_info;
ALTER TABLE course RENAME COLUMN qumu_type TO course_type;
ALTER TABLE course_info RENAME COLUMN qumu_id TO course_id;
ALTER TABLE course_section RENAME COLUMN qumu_id TO course_id;
ALTER TABLE course_section RENAME COLUMN qumu_type TO course_type;
ALTER TABLE course_section RENAME COLUMN qumu_name TO course_name;
ALTER TABLE course_section RENAME COLUMN qumu_text TO course_text;
ALTER TABLE course_section RENAME COLUMN qumu_category_key TO course_category_key;
ALTER TABLE course_section RENAME COLUMN qumu_category_name TO course_category_name;
ALTER TABLE course_group RENAME COLUMN qumu_section_ids TO course_section_ids;
ALTER TABLE daka_course_section RENAME COLUMN qumu_section_id TO course_section_id;
ALTER TABLE jihua_course_section RENAME COLUMN qumu_section_id TO course_section_id;
ALTER TABLE daka RENAME COLUMN qumu_sections TO course_sections;
ALTER TABLE jihua RENAME COLUMN qumu_sections TO course_sections;
ALTER TABLE lianxi RENAME COLUMN daka_qumu_section_id TO daka_course_section_id;
ALTER TABLE lianxi RENAME COLUMN jihua_qumu_section_id TO jihua_course_section_id;
@@ -0,0 +1,45 @@
UPDATE daka
SET course_sections = jsonb_set(
course_sections,
'{vals}',
COALESCE((
SELECT jsonb_agg(
(item - 'course_id' - 'course_type' - 'course_name' - 'course_text' - 'course_category_key' - 'course_category_name') ||
jsonb_build_object(
'qumu_id', item->'course_id',
'qumu_type', item->'course_type',
'qumu_name', item->'course_name',
'qumu_text', item->'course_text',
'qumu_category_key', item->'course_category_key',
'qumu_category_name', item->'course_category_name'
)
)
FROM jsonb_array_elements(course_sections->'vals') AS item
), '[]'::jsonb),
true
)
WHERE course_sections IS NOT NULL
AND course_sections ? 'vals';
UPDATE jihua
SET course_sections = jsonb_set(
course_sections,
'{vals}',
COALESCE((
SELECT jsonb_agg(
(item - 'course_id' - 'course_type' - 'course_name' - 'course_text' - 'course_category_key' - 'course_category_name') ||
jsonb_build_object(
'qumu_id', item->'course_id',
'qumu_type', item->'course_type',
'qumu_name', item->'course_name',
'qumu_text', item->'course_text',
'qumu_category_key', item->'course_category_key',
'qumu_category_name', item->'course_category_name'
)
)
FROM jsonb_array_elements(course_sections->'vals') AS item
), '[]'::jsonb),
true
)
WHERE course_sections IS NOT NULL
AND course_sections ? 'vals';
@@ -0,0 +1,45 @@
UPDATE daka
SET course_sections = jsonb_set(
course_sections,
'{vals}',
COALESCE((
SELECT jsonb_agg(
(item - 'qumu_id' - 'qumu_type' - 'qumu_name' - 'qumu_text' - 'qumu_category_key' - 'qumu_category_name') ||
jsonb_build_object(
'course_id', item->'qumu_id',
'course_type', item->'qumu_type',
'course_name', item->'qumu_name',
'course_text', item->'qumu_text',
'course_category_key', item->'qumu_category_key',
'course_category_name', item->'qumu_category_name'
)
)
FROM jsonb_array_elements(course_sections->'vals') AS item
), '[]'::jsonb),
true
)
WHERE course_sections IS NOT NULL
AND course_sections ? 'vals';
UPDATE jihua
SET course_sections = jsonb_set(
course_sections,
'{vals}',
COALESCE((
SELECT jsonb_agg(
(item - 'qumu_id' - 'qumu_type' - 'qumu_name' - 'qumu_text' - 'qumu_category_key' - 'qumu_category_name') ||
jsonb_build_object(
'course_id', item->'qumu_id',
'course_type', item->'qumu_type',
'course_name', item->'qumu_name',
'course_text', item->'qumu_text',
'course_category_key', item->'qumu_category_key',
'course_category_name', item->'qumu_category_name'
)
)
FROM jsonb_array_elements(course_sections->'vals') AS item
), '[]'::jsonb),
true
)
WHERE course_sections IS NOT NULL
AND course_sections ? 'vals';