Spaces:
No application file
No application file
declare(strict_types=1); | |
namespace Mautic\IntegrationsBundle\Migrations; | |
use Doctrine\DBAL\Schema\Schema; | |
use Doctrine\DBAL\Schema\SchemaException; | |
use Mautic\IntegrationsBundle\Migration\AbstractMigration; | |
class Version_0_0_1 extends AbstractMigration | |
{ | |
private string $table = 'sync_object_mapping'; | |
protected function isApplicable(Schema $schema): bool | |
{ | |
try { | |
return !$schema->getTable($this->concatPrefix($this->table))->hasColumn('integration_reference_id'); | |
} catch (SchemaException) { | |
return false; | |
} | |
} | |
protected function up(): void | |
{ | |
$this->addSql(" | |
ALTER TABLE `{$this->concatPrefix($this->table)}` | |
DROP INDEX `{$this->concatPrefix('integration_object')}` | |
"); | |
$this->addSql(" | |
ALTER TABLE `{$this->concatPrefix($this->table)}` | |
ADD `integration_reference_id` varchar(191) NULL AFTER `internal_object_name` | |
"); | |
$this->addSql(" | |
CREATE INDEX {$this->concatPrefix('integration_object')} | |
ON {$this->concatPrefix($this->table)}(integration, integration_object_name, integration_object_id, integration_reference_id); | |
"); | |
$this->addSql(" | |
CREATE INDEX {$this->concatPrefix('integration_reference')} | |
ON {$this->concatPrefix($this->table)}(integration, integration_object_name, integration_reference_id, integration_object_id); | |
"); | |
} | |
} | |