$ apply migrations via pg SKIP (already applied): 20260405111006_init APPLYING: 20260408093000_search_indexes FAILED (skipping, continuing): 20260408093000_search_indexes could not open extension control file "/usr/share/pgsql/extension/pg_trgm.control": No such file or directory APPLYING: 20260408141618_add_student_branch FAILED (skipping, continuing): 20260408141618_add_student_branch index "payments_payment_date_trgm_idx" does not exist APPLYING: 20260411153000_add_document_branding OK: 20260411153000_add_document_branding APPLYING: 20260411170000_add_user_lecturer_link OK: 20260411170000_add_user_lecturer_link APPLYING: 20260424120000_teacher_assignment_foundation OK: 20260424120000_teacher_assignment_foundation APPLYING: 20260424183000_payroll_foundation OK: 20260424183000_payroll_foundation APPLYING: 20260424194500_teacher_claims OK: 20260424194500_teacher_claims APPLYING: 20260424210000_payroll_runs OK: 20260424210000_payroll_runs APPLYING: 20260424214500_payroll_payouts OK: 20260424214500_payroll_payouts APPLYING: 20260424223000_payroll_accounting_posts OK: 20260424223000_payroll_accounting_posts APPLYING: 20260424231000_workflow_events OK: 20260424231000_workflow_events APPLYING: 20260424235500_accounting_export_batches OK: 20260424235500_accounting_export_batches APPLYING: 20260424_batch_35_teacher_applications OK: 20260424_batch_35_teacher_applications APPLYING: 20260425055517_fix_schema_relations_and_approval_sql OK: 20260425055517_fix_schema_relations_and_approval_sql APPLYING: 20260425123000_add_framework_level_columns OK: 20260425123000_add_framework_level_columns APPLYING: 20260426121000_location_aware_matching OK: 20260426121000_location_aware_matching APPLYING: 20260501090000_public_institution_intake OK: 20260501090000_public_institution_intake APPLYING: 20260501093000_student_enrollment_location_columns OK: 20260501093000_student_enrollment_location_columns APPLYING: 20260713001500_add_lecturer_gender_and_address OK: 20260713001500_add_lecturer_gender_and_address APPLYING: 20260718090000_add_student_contact_fields OK: 20260718090000_add_student_contact_fields APPLYING: 20260723131500_add_class_rooms_and_schedules OK: 20260723131500_add_class_rooms_and_schedules APPLYING: 20260723143000_add_language_course_catalog OK: 20260723143000_add_language_course_catalog APPLYING: 20260723152000_add_recurring_class_series OK: 20260723152000_add_recurring_class_series APPLYING: 20260723170000_assign_enrollments_to_timetable OK: 20260723170000_assign_enrollments_to_timetable APPLYING: 20260723210000_organizational_restructure_foundation OK: 20260723210000_organizational_restructure_foundation APPLYING: 20260724093000_add_student_applications OK: 20260724093000_add_student_applications APPLYING: 20260726170000_add_corporate_contracts OK: 20260726170000_add_corporate_contracts APPLYING: 20260726190000_add_course_framework_and_fees OK: 20260726190000_add_course_framework_and_fees APPLYING: 20260726210000_add_fee_components_and_chargeable_items OK: 20260726210000_add_fee_components_and_chargeable_items APPLYING: 20260726223000_add_corporate_contract_pricing_schedule OK: 20260726223000_add_corporate_contract_pricing_schedule APPLYING: 20260726230000_add_corporate_teacher_allocations OK: 20260726230000_add_corporate_teacher_allocations APPLYING: 20260726234500_add_student_transfers OK: 20260726234500_add_student_transfers APPLYING: 20260726235500_add_student_deferments OK: 20260726235500_add_student_deferments APPLYING: 20260727001500_add_marketing_crm OK: 20260727001500_add_marketing_crm APPLYING: 20260727013000_add_profit_allocations OK: 20260727013000_add_profit_allocations APPLYING: 20260727020000_add_director_benefit_split OK: 20260727020000_add_director_benefit_split APPLYING: 20260727023000_add_outreach_programs OK: 20260727023000_add_outreach_programs APPLYING: 20260729123000_add_institution_funding OK: 20260729123000_add_institution_funding APPLYING: 20260729133000_add_petty_cash OK: 20260729133000_add_petty_cash APPLYING: 20260729144500_add_petty_cash_custodian_user OK: 20260729144500_add_petty_cash_custodian_user APPLYING: 20260729161000_add_academic_levels OK: 20260729161000_add_academic_levels APPLYING: 20260729164500_add_academic_programmes OK: 20260729164500_add_academic_programmes APPLYING: 20260729171000_add_programme_total_hours OK: 20260729171000_add_programme_total_hours APPLYING: 20260729173500_change_programme_target_to_120_hours OK: 20260729173500_change_programme_target_to_120_hours APPLYING: 20260729180000_add_academic_intakes OK: 20260729180000_add_academic_intakes APPLYING: 20260729193000_link_class_groups_to_intakes OK: 20260729193000_link_class_groups_to_intakes APPLYING: 20260730110000_add_class_group_teacher_history OK: 20260730110000_add_class_group_teacher_history APPLYING: 20260805120000_link_grades_to_assessments OK: 20260805120000_link_grades_to_assessments APPLYING: 20260807050000_attendance_payroll_hold_workflow OK: 20260807050000_attendance_payroll_hold_workflow APPLYING: 20260807060000_soft_delete_students_attendance_expenses OK: 20260807060000_soft_delete_students_attendance_expenses APPLYING: 20260807070000_cashier_close_user_relations OK: 20260807070000_cashier_close_user_relations APPLYING: 20260807080000_split_allowances_component OK: 20260807080000_split_allowances_component APPLYING: 20260807090000_enrollment_payment_hold OK: 20260807090000_enrollment_payment_hold Migrations complete.