fix school year for all tables
Tests / PHPUnit (push) Failing after 1m20s

This commit is contained in:
root
2026-07-18 14:45:38 -04:00
parent 4db8334a3c
commit 716cc8b8d3
125 changed files with 2315 additions and 81 deletions
@@ -0,0 +1,153 @@
# Database Schema Comparison Report
- Compared: `/Volumes/ExternalApps/database_dump/scool_view.sql.zip` (`scool_view.sql`)
- Against: `/Volumes/ExternalApps/database_dump/school_prod_1.sql.zip` (`school_prod.sql`)
- Scope: table definitions, column definitions, table options, indexes/keys, auto-increment `MODIFY` statements, and foreign-key constraints from the dumps.
## Summary
- Tables in `scool_view`: 131
- Tables in `school_prod_1`: 131
- Tables present in both: 131
- Tables only in `scool_view`: 0
- Tables only in `school_prod_1`: 0
- Matching table schemas: 131
- Different table schemas: 0
**Result: no schema differences found.**
## Table Status
| Table | Status | Difference areas |
|---|---:|---|
| `additional_charges` | Match | - |
| `admin_notification_subjects` | Match | - |
| `attendance_comment_template` | Match | - |
| `attendance_data` | Match | - |
| `attendance_day` | Match | - |
| `attendance_record` | Match | - |
| `attendance_tracking` | Match | - |
| `authorized_users` | Match | - |
| `badge_print_logs` | Match | - |
| `below_sixty_decisions` | Match | - |
| `calendar_events` | Match | - |
| `certificate_records` | Match | - |
| `chapters` | Match | - |
| `class_prep_adjustments` | Match | - |
| `class_preparation_log` | Match | - |
| `class_progress_attachments` | Match | - |
| `class_progress_reports` | Match | - |
| `classes` | Match | - |
| `classSection` | Match | - |
| `competition_class_winners` | Match | - |
| `competition_scores` | Match | - |
| `competition_winners` | Match | - |
| `competitions` | Match | - |
| `configuration` | Match | - |
| `contactus` | Match | - |
| `current_flag` | Match | - |
| `discount_usages` | Match | - |
| `discount_vouchers` | Match | - |
| `early_dismissal_signatures` | Match | - |
| `email_templates` | Match | - |
| `emergency_contacts` | Match | - |
| `enrollments` | Match | - |
| `event_charges` | Match | - |
| `events` | Match | - |
| `exam_drafts` | Match | - |
| `examquestiondistribution` | Match | - |
| `examquestions` | Match | - |
| `exams` | Match | - |
| `expenses` | Match | - |
| `families` | Match | - |
| `family_comm_prefs` | Match | - |
| `family_guardians` | Match | - |
| `family_students` | Match | - |
| `final_exam` | Match | - |
| `final_score` | Match | - |
| `flag` | Match | - |
| `grading_locks` | Match | - |
| `homework` | Match | - |
| `inventory_categories` | Match | - |
| `inventory_items` | Match | - |
| `inventory_movements` | Match | - |
| `invoice_event` | Match | - |
| `invoice_students_list` | Match | - |
| `invoices` | Match | - |
| `ip_attempts` | Match | - |
| `late_slip_logs` | Match | - |
| `login_activity` | Match | - |
| `longanswerquestions` | Match | - |
| `manual_payments` | Match | - |
| `messages` | Match | - |
| `midterm_exam` | Match | - |
| `migrations` | Match | - |
| `missing_score_overrides` | Match | - |
| `nav_items` | Match | - |
| `notification_recipients` | Match | - |
| `notifications` | Match | - |
| `parent_attendance_reports` | Match | - |
| `parent_meeting_schedules` | Match | - |
| `parent_notifications` | Match | - |
| `parents` | Match | - |
| `participation` | Match | - |
| `password_reset_requests` | Match | - |
| `password_resets` | Match | - |
| `payment_error` | Match | - |
| `payment_notification_logs` | Match | - |
| `payment_transactions` | Match | - |
| `payments` | Match | - |
| `paypal_payments` | Match | - |
| `paypal_transactions` | Match | - |
| `permissions` | Match | - |
| `placement_batches` | Match | - |
| `placement_levels` | Match | - |
| `placement_scores` | Match | - |
| `preferences` | Match | - |
| `print_requests` | Match | - |
| `project` | Match | - |
| `promotion_queue` | Match | - |
| `qcmquestions` | Match | - |
| `questions` | Match | - |
| `questionstruefalse` | Match | - |
| `questiontypes` | Match | - |
| `quiz` | Match | - |
| `refunds` | Match | - |
| `reimbursement_batch_admin_files` | Match | - |
| `reimbursement_batch_items` | Match | - |
| `reimbursement_batches` | Match | - |
| `reimbursements` | Match | - |
| `report_card_acknowledgements` | Match | - |
| `role_nav_items` | Match | - |
| `role_permissions` | Match | - |
| `roles` | Match | - |
| `scan_log` | Match | - |
| `school_year_closing_batches` | Match | - |
| `school_year_closing_items` | Match | - |
| `school_year_transition_logs` | Match | - |
| `school_years` | Match | - |
| `score_comments` | Match | - |
| `sections` | Match | - |
| `semester_scores` | Match | - |
| `settings` | Match | - |
| `shortanswerquestions` | Match | - |
| `staff` | Match | - |
| `staff_attendance` | Match | - |
| `student_allergies` | Match | - |
| `student_class` | Match | - |
| `student_decisions` | Match | - |
| `student_medical_conditions` | Match | - |
| `student_section_distribution_drafts` | Match | - |
| `students` | Match | - |
| `subject_curriculum_items` | Match | - |
| `support_requests` | Match | - |
| `teacher_attendance_data` | Match | - |
| `teacher_class` | Match | - |
| `teacher_submission_notification_history` | Match | - |
| `user_notifications` | Match | - |
| `user_preferences` | Match | - |
| `user_roles` | Match | - |
| `users` | Match | - |
| `whatsapp_group_links` | Match | - |
| `whatsapp_group_memberships` | Match | - |
| `whatsapp_invites_log` | Match | - |
@@ -0,0 +1,366 @@
# Database Schema Comparison Report
- Compared: `/Volumes/ExternalApps/database_dump/scool_view.sql.zip` (`scool_view.sql`)
- Against: `/Volumes/ExternalApps/database_dump/school_prod.sql.zip` (`school_prod.sql`)
- Scope: table definitions, column definitions, table options, indexes/keys, auto-increment `MODIFY` statements, and foreign-key constraints from the dumps.
## Summary
- Tables in `scool_view`: 131
- Tables in `school_prod`: 131
- Tables present in both: 131
- Tables only in `scool_view`: 0
- Tables only in `school_prod`: 0
- Matching table schemas: 104
- Different table schemas: 27
**Result: schema differences found.**
## Table Status
| Table | Status | Difference areas |
|---|---:|---|
| `additional_charges` | Match | - |
| `admin_notification_subjects` | Match | - |
| `attendance_comment_template` | Match | - |
| `attendance_data` | Match | - |
| `attendance_day` | Match | - |
| `attendance_record` | Match | - |
| `attendance_tracking` | Match | - |
| `authorized_users` | Match | - |
| `badge_print_logs` | Match | - |
| `below_sixty_decisions` | Match | - |
| `calendar_events` | Match | - |
| `certificate_records` | Match | - |
| `chapters` | Match | - |
| `class_prep_adjustments` | Match | - |
| `class_preparation_log` | Match | - |
| `class_progress_attachments` | Match | - |
| `class_progress_reports` | Match | - |
| `classes` | Match | - |
| `classSection` | Different | columns |
| `competition_class_winners` | Match | - |
| `competition_scores` | Match | - |
| `competition_winners` | Different | keys |
| `competitions` | Match | - |
| `configuration` | Match | - |
| `contactus` | Different | columns |
| `current_flag` | Match | - |
| `discount_usages` | Match | - |
| `discount_vouchers` | Different | columns |
| `early_dismissal_signatures` | Match | - |
| `email_templates` | Match | - |
| `emergency_contacts` | Different | columns |
| `enrollments` | Match | - |
| `event_charges` | Match | - |
| `events` | Match | - |
| `exam_drafts` | Match | - |
| `examquestiondistribution` | Match | - |
| `examquestions` | Match | - |
| `exams` | Match | - |
| `expenses` | Match | - |
| `families` | Match | - |
| `family_comm_prefs` | Match | - |
| `family_guardians` | Match | - |
| `family_students` | Match | - |
| `final_exam` | Match | - |
| `final_score` | Match | - |
| `flag` | Match | - |
| `grading_locks` | Match | - |
| `homework` | Match | - |
| `inventory_categories` | Match | - |
| `inventory_items` | Match | - |
| `inventory_movements` | Match | - |
| `invoice_event` | Match | - |
| `invoice_students_list` | Match | - |
| `invoices` | Match | - |
| `ip_attempts` | Different | columns |
| `late_slip_logs` | Match | - |
| `login_activity` | Different | columns |
| `longanswerquestions` | Match | - |
| `manual_payments` | Match | - |
| `messages` | Match | - |
| `midterm_exam` | Match | - |
| `migrations` | Match | - |
| `missing_score_overrides` | Match | - |
| `nav_items` | Match | - |
| `notification_recipients` | Different | columns |
| `notifications` | Different | columns |
| `parent_attendance_reports` | Match | - |
| `parent_meeting_schedules` | Match | - |
| `parent_notifications` | Match | - |
| `parents` | Different | columns |
| `participation` | Match | - |
| `password_reset_requests` | Match | - |
| `password_resets` | Match | - |
| `payment_error` | Different | columns |
| `payment_notification_logs` | Match | - |
| `payment_transactions` | Different | columns |
| `payments` | Different | columns |
| `paypal_payments` | Match | - |
| `paypal_transactions` | Different | columns |
| `permissions` | Match | - |
| `placement_batches` | Match | - |
| `placement_levels` | Match | - |
| `placement_scores` | Match | - |
| `preferences` | Different | columns |
| `print_requests` | Match | - |
| `project` | Match | - |
| `promotion_queue` | Match | - |
| `qcmquestions` | Match | - |
| `questions` | Match | - |
| `questionstruefalse` | Match | - |
| `questiontypes` | Match | - |
| `quiz` | Match | - |
| `refunds` | Different | columns, keys |
| `reimbursement_batch_admin_files` | Match | - |
| `reimbursement_batch_items` | Different | columns |
| `reimbursement_batches` | Different | columns |
| `reimbursements` | Different | columns |
| `report_card_acknowledgements` | Match | - |
| `role_nav_items` | Match | - |
| `role_permissions` | Match | - |
| `roles` | Match | - |
| `scan_log` | Match | - |
| `school_year_closing_batches` | Match | - |
| `school_year_closing_items` | Match | - |
| `school_year_transition_logs` | Match | - |
| `school_years` | Match | - |
| `score_comments` | Match | - |
| `sections` | Match | - |
| `semester_scores` | Match | - |
| `settings` | Match | - |
| `shortanswerquestions` | Match | - |
| `staff` | Different | columns |
| `staff_attendance` | Match | - |
| `student_allergies` | Match | - |
| `student_class` | Match | - |
| `student_decisions` | Match | - |
| `student_medical_conditions` | Match | - |
| `student_section_distribution_drafts` | Match | - |
| `students` | Different | columns |
| `subject_curriculum_items` | Match | - |
| `support_requests` | Different | columns |
| `teacher_attendance_data` | Match | - |
| `teacher_class` | Different | keys |
| `teacher_submission_notification_history` | Match | - |
| `user_notifications` | Different | columns |
| `user_preferences` | Match | - |
| `user_roles` | Match | - |
| `users` | Different | columns |
| `whatsapp_group_links` | Different | columns, table options, keys |
| `whatsapp_group_memberships` | Different | columns, keys |
| `whatsapp_invites_log` | Match | - |
## Detailed Differences
### `classSection`
Columns only in `school_prod`:
- `semester`: `varchar(255) NOT NULL`
### `competition_winners`
**Indexes / keys**
Only in `school_prod`:
```sql
ADD KEY `competition_id_class_section_id_rank` (`competition_id`,`class_section_id`,`rank`)
```
### `contactus`
Columns only in `school_prod`:
- `semester`: `varchar(255) COLLATE utf8mb4_general_ci NOT NULL`
### `discount_vouchers`
Columns only in `school_prod`:
- `semester`: `varchar(10) COLLATE utf8mb4_general_ci DEFAULT NULL`
### `emergency_contacts`
Columns only in `school_prod`:
- `semester`: `varchar(255) COLLATE utf8mb4_general_ci NOT NULL`
- `school_year`: `varchar(9) COLLATE utf8mb4_general_ci DEFAULT NULL`
### `ip_attempts`
Columns only in `school_prod`:
- `semester`: `varchar(10) COLLATE utf8mb4_general_ci DEFAULT NULL`
### `login_activity`
Columns only in `school_prod`:
- `semester`: `varchar(255) NOT NULL`
### `notification_recipients`
Columns only in `school_prod`:
- `semester`: `varchar(10) COLLATE utf8mb4_general_ci DEFAULT NULL`
### `notifications`
Columns only in `school_prod`:
- `semester`: `varchar(10) COLLATE utf8mb4_general_ci DEFAULT NULL`
### `parents`
Columns only in `school_prod`:
- `semester`: `varchar(10) COLLATE utf8mb4_general_ci DEFAULT NULL`
- `school_year`: `varchar(20) COLLATE utf8mb4_general_ci NOT NULL`
### `payment_error`
Columns only in `school_prod`:
- `semester`: `varchar(10) COLLATE utf8mb4_general_ci DEFAULT NULL`
### `payment_transactions`
Columns only in `school_prod`:
- `semester`: `varchar(10) COLLATE utf8mb4_general_ci DEFAULT NULL`
### `payments`
Columns only in `school_prod`:
- `semester`: `varchar(10) COLLATE utf8mb4_general_ci DEFAULT NULL`
### `paypal_transactions`
Columns only in `school_prod`:
- `semester`: `varchar(10) DEFAULT NULL`
### `preferences`
Columns only in `school_prod`:
- `school_year`: `varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL`
### `refunds`
Columns only in `school_prod`:
- `semester`: `varchar(10) COLLATE utf8mb4_general_ci DEFAULT NULL`
**Indexes / keys**
Only in `scool_view`:
```sql
ADD KEY `idx_refunds_parent_year_semester_status` (`parent_id`,`school_year`,`status`)
```
Only in `school_prod`:
```sql
ADD KEY `idx_refunds_parent_year_semester_status` (`parent_id`,`school_year`,`semester`,`status`)
```
### `reimbursement_batch_items`
Columns only in `school_prod`:
- `semester`: `varchar(10) COLLATE utf8mb4_general_ci DEFAULT NULL`
### `reimbursement_batches`
Columns only in `school_prod`:
- `semester`: `varchar(10) COLLATE utf8mb4_general_ci DEFAULT NULL`
### `reimbursements`
Columns only in `school_prod`:
- `semester`: `varchar(10) COLLATE utf8mb4_general_ci DEFAULT NULL`
### `staff`
Columns only in `school_prod`:
- `school_year`: `varchar(9) COLLATE utf8mb4_general_ci NOT NULL`
### `students`
Columns only in `school_prod`:
- `semester`: `varchar(10) COLLATE utf8mb4_general_ci DEFAULT NULL`
- `school_year`: `varchar(9) COLLATE utf8mb4_general_ci DEFAULT NULL`
### `support_requests`
Columns only in `school_prod`:
- `semester`: `varchar(255) NOT NULL`
### `teacher_class`
**Indexes / keys**
Only in `scool_view`:
```sql
ADD UNIQUE KEY `unique_teacher_assignment` (`teacher_id`,`class_section_id`,`school_year`)
```
Only in `school_prod`:
```sql
ADD KEY `idx_sy_teacher_class_school_year_223511c0` (`school_year`)
```
### `user_notifications`
Columns only in `school_prod`:
- `semester`: `varchar(10) COLLATE utf8mb4_general_ci DEFAULT NULL`
### `users`
Columns only in `school_prod`:
- `semester`: `varchar(255) NOT NULL`
- `school_year`: `varchar(9) DEFAULT NULL`
### `whatsapp_group_links`
Columns only in `school_prod`:
- `school_year`: `varchar(9) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL`
- `semester`: `varchar(20) COLLATE utf8mb4_general_ci NOT NULL`
Table options changed:
- `scool_view`: `ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci`
- `school_prod`: `(none)`
**Indexes / keys**
Only in `scool_view`:
```sql
ADD UNIQUE KEY `uq_section_term` (`class_section_id`)
```
Only in `school_prod`:
```sql
ADD UNIQUE KEY `uq_section_term` (`class_section_id`,`school_year`,`semester`)
```
### `whatsapp_group_memberships`
Columns only in `school_prod`:
- `semester`: `varchar(20) NOT NULL`
**Indexes / keys**
Only in `scool_view`:
```sql
ADD UNIQUE KEY `uniq_whatsapp_membership` (`class_section_id`,`school_year`,`subject_type`,`subject_id`)
ADD KEY `class_section_id_school_year_semester` (`class_section_id`,`school_year`)
```
Only in `school_prod`:
```sql
ADD UNIQUE KEY `uniq_whatsapp_membership` (`class_section_id`,`school_year`,`semester`,`subject_type`,`subject_id`)
ADD KEY `class_section_id_school_year_semester` (`class_section_id`,`school_year`,`semester`)
```