Completed
Branch feature/pre-split (67216b)
by Anton
03:22
created

DropReference   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 19
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Importance

Changes 0
Metric Value
dl 0
loc 19
rs 10
c 0
b 0
f 0
wmc 2
lcom 1
cbo 4

1 Method

Rating   Name   Duplication   Size   Complexity  
A execute() 0 13 2
1
<?php
2
/**
3
 * Spiral Framework.
4
 *
5
 * @license   MIT
6
 * @author    Anton Titov (Wolfy-J)
7
 */
8
namespace Spiral\Migrations\Operations\References;
9
10
use Spiral\Migrations\CapsuleInterface;
11
use Spiral\Migrations\Exceptions\Operations\ReferenceException;
12
use Spiral\Migrations\Operations\ReferenceOperation;
13
14
class DropReference extends ReferenceOperation
15
{
16
    /**
17
     * {@inheritdoc}
18
     */
19
    public function execute(CapsuleInterface $capsule)
20
    {
21
        $schema = $capsule->getSchema($this->getTable(), $this->getDatabase());
22
23
        if (!$schema->hasForeign($this->column)) {
24
            throw new ReferenceException(
25
                "Unable to drop foreign key '{$schema->getName()}'.'{$this->column}', "
26
                . "foreign key does not exists"
27
            );
28
        }
29
30
        $schema->dropForeign($this->column);
31
    }
32
}