protected function _ifNullableChangesThenDeleteForeignKeys(Garp_Spawn_MySql_Column $sourceColumn, array $diffProperties)
 {
     $source = $this->getSource();
     if (in_array('nullable', $diffProperties)) {
         foreach ($source->keys->foreignKeys as $fk) {
             if ($fk->localColumn === $sourceColumn->name) {
                 Garp_Spawn_MySql_ForeignKey::delete($source->name, $fk);
                 $source->keys->droppedForeignKeyNamesDuringColumnSync[] = $fk->name;
                 break;
             }
         }
     }
 }
 protected function _removeForeignKeys(array $keysToRemove)
 {
     $tableName = $this->getSource()->getTableName();
     foreach ($keysToRemove as $key) {
         if (!(in_array($key->name, $this->droppedForeignKeyNamesDuringColumnSync) || Garp_Spawn_MySql_ForeignKey::delete($tableName, $key))) {
             throw new Exception("Could not delete '{$key->localColumn}' foreign key.");
         }
     }
 }