Spaces:
No application file
No application file
| namespace Mautic\Migrations; | |
| use Doctrine\DBAL\Schema\Schema; | |
| use Mautic\CoreBundle\Doctrine\PreUpAssertionMigration; | |
| use Mautic\LeadBundle\Field\Helper\IndexHelper; | |
| /** | |
| * Auto-generated Migration: Please modify to your needs! | |
| */ | |
| class Version20190524124819 extends PreUpAssertionMigration | |
| { | |
| protected function preUpAssertions(): void | |
| { | |
| $this->skipAssertion(function (Schema $schema) { | |
| return $schema->getTable("{$this->prefix}lead_fields")->hasColumn('is_index'); | |
| }, sprintf('Schema includes this migration')); | |
| } | |
| public function up(Schema $schema): void | |
| { | |
| $this->addSql(" | |
| ALTER TABLE {$this->prefix}lead_fields | |
| ADD `is_index` TINYINT(1) DEFAULT 0 NOT NULL, | |
| ADD `char_length_limit` INT(3) NULL; | |
| "); | |
| $this->addSql(" | |
| UPDATE {$this->prefix}lead_fields | |
| SET `char_length_limit` = 255 | |
| WHERE `type` IN ('text', 'select', 'multiselect', 'phone', 'url', 'email') | |
| AND `char_length_limit` IS NULL; | |
| "); | |
| $indexHelper = $this->container->get(IndexHelper::class); | |
| $indexedColumns = implode("', '", $indexHelper->getIndexedColumnNames()); | |
| $this->addSql(" | |
| UPDATE {$this->prefix}lead_fields | |
| SET `is_index` = TRUE | |
| WHERE `alias` IN ('{$indexedColumns}'); | |
| "); | |
| } | |
| } | |