From 7c341ca624a8042f4544d0b4563a5955918cde71 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 16 Jul 2026 00:23:49 -0400 Subject: [PATCH] fix db for tests --- ...5-000000_RemoveClassAssignmentSemester.php | 26 ++++++++++++++++--- ...-07-16-000300_RepairModelSchemaColumns.php | 7 +++++ 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/app/Database/Migrations/2026-01-25-000000_RemoveClassAssignmentSemester.php b/app/Database/Migrations/2026-01-25-000000_RemoveClassAssignmentSemester.php index 7edda36..bf45010 100644 --- a/app/Database/Migrations/2026-01-25-000000_RemoveClassAssignmentSemester.php +++ b/app/Database/Migrations/2026-01-25-000000_RemoveClassAssignmentSemester.php @@ -12,7 +12,16 @@ class RemoveClassAssignmentSemester extends Migration $this->db->tableExists('teacher_class') && $this->db->fieldExists('semester', 'teacher_class') ) { - $this->forge->dropColumn('teacher_class', 'semester'); + foreach ($this->indexesContainingColumn('teacher_class', 'semester') as $index) { + $this->db->query( + 'DROP INDEX ' . $this->db->escapeIdentifiers($index) . ' ON ' . $this->db->escapeIdentifiers('teacher_class') + ); + } + + $this->db->query( + 'ALTER TABLE ' . $this->db->escapeIdentifiers('teacher_class') + . ' DROP COLUMN ' . $this->db->escapeIdentifiers('semester') + ); } } @@ -33,12 +42,21 @@ class RemoveClassAssignmentSemester extends Migration } } - private function indexExists(string $table, string $index): bool + private function indexesContainingColumn(string $table, string $column): array { $result = $this->db->query( - 'SHOW INDEX FROM `' . str_replace('`', '``', $table) . '` WHERE Key_name = ' . $this->db->escape($index) + 'SHOW INDEX FROM ' . $this->db->escapeIdentifiers($table) + . ' WHERE Column_name = ' . $this->db->escape($column) ); - return $result->getNumRows() > 0; + $indexes = []; + foreach ($result->getResultArray() as $row) { + $index = (string) ($row['Key_name'] ?? ''); + if ($index !== '' && $index !== 'PRIMARY') { + $indexes[] = $index; + } + } + + return array_values(array_unique($indexes)); } } diff --git a/app/Database/Migrations/2026-07-16-000300_RepairModelSchemaColumns.php b/app/Database/Migrations/2026-07-16-000300_RepairModelSchemaColumns.php index d0863fc..a409ab9 100644 --- a/app/Database/Migrations/2026-07-16-000300_RepairModelSchemaColumns.php +++ b/app/Database/Migrations/2026-07-16-000300_RepairModelSchemaColumns.php @@ -28,6 +28,12 @@ class RepairModelSchemaColumns extends Migration 'after' => 'close_description', ]); + $this->addColumnIfMissing('current_flag', 'action_taken', [ + 'type' => 'TEXT', + 'null' => true, + 'after' => 'close_description', + ]); + $this->addColumnIfMissing('user_preferences', 'timezone', [ 'type' => 'VARCHAR', 'constraint' => 64, @@ -50,6 +56,7 @@ class RepairModelSchemaColumns extends Migration 'calendar_events' => 'event_type', 'exams' => 'school_year', 'flag' => 'action_taken', + 'current_flag' => 'action_taken', 'user_preferences' => 'timezone', 'student_class' => 'is_event_only', ] as $table => $column) {