Jsor\Doctrine\PostGIS\Event\DBALSchemaEventSubscriber::onSchemaAlterTableRemoveColumn PHP Method

onSchemaAlterTableRemoveColumn() public method

public onSchemaAlterTableRemoveColumn ( Doctrine\DBAL\Event\SchemaAlterTableRemoveColumnEventArgs $args )
$args Doctrine\DBAL\Event\SchemaAlterTableRemoveColumnEventArgs
    public function onSchemaAlterTableRemoveColumn(SchemaAlterTableRemoveColumnEventArgs $args)
    {
        $column = $args->getColumn();
        if (!$this->isSpatialColumnType($column)) {
            return;
        }
        if ('geometry' !== $column->getType()->getName() || $this->schemaManager->isPostGis2()) {
            return;
        }
        $platform = $args->getPlatform();
        $diff = $args->getTableDiff();
        $table = new Identifier(false !== $diff->newName ? $diff->newName : $diff->name);
        if ($column->getNotnull()) {
            // Remove NOT NULL constraint from the field
            $args->addSql(sprintf('ALTER TABLE %s ALTER %s SET DEFAULT NULL', $table->getQuotedName($platform), $column->getQuotedName($platform)));
        }
        // We use DropGeometryColumn() to also drop entries from the geometry_columns table
        $args->addSql(sprintf("SELECT DropGeometryColumn('%s', '%s')", $table->getName(), $column->getName()));
        $args->preventDefault();
    }