modifyEnrollmentStatusEnum(self::STATUSES_WITH_REVIEW_DECISION); } public function down() { if ($this->db->tableExists('enrollments')) { $this->db->table('enrollments') ->where('enrollment_status', 'review & decision') ->update(['enrollment_status' => 'admission under review']); } $this->modifyEnrollmentStatusEnum(self::STATUSES_WITHOUT_REVIEW_DECISION); } private function modifyEnrollmentStatusEnum(array $statuses): void { if (! $this->db->tableExists('enrollments') || ! $this->db->fieldExists('enrollment_status', 'enrollments')) { return; } if (! in_array($this->db->DBDriver, ['MySQLi', 'MySQL'], true)) { return; } $enumValues = implode(',', array_map(static fn (string $status): string => "'" . str_replace("'", "''", $status) . "'", $statuses)); $this->db->query( "ALTER TABLE `enrollments` MODIFY `enrollment_status` ENUM({$enumValues}) NOT NULL DEFAULT 'admission under review'" ); } }