db->tableExists('print_requests')) { return; } // Drop the old foreign key if it exists $db = \Config\Database::connect(); $keys = $db->getForeignKeyData('print_requests'); foreach ($keys as $key) { if ($key->constraint_name === 'print_requests_class_id_foreign') { try { $this->forge->dropForeignKey('print_requests', 'print_requests_class_id_foreign'); } catch (\Throwable $e) { // Already absent. } break; } } if (! $this->db->tableExists('classes')) { return; } // Add the new foreign key $this->forge->addForeignKey('class_id', 'classes', 'id', 'CASCADE', 'CASCADE'); // Process the modifications $this->forge->processIndexes('print_requests'); } public function down() { if (! $this->db->tableExists('print_requests')) { return; } // Drop the new foreign key try { $this->forge->dropForeignKey('print_requests', 'print_requests_class_id_foreign'); } catch (\Throwable $e) { // Already absent. } if (! $this->db->tableExists('class_sections')) { return; } // Re-add the old foreign key $this->forge->addForeignKey('class_id', 'class_sections', 'id', 'CASCADE', 'CASCADE'); // Process the modifications $this->forge->processIndexes('print_requests'); } }