vendor/boldr/cms-bundle/migrations/Version1__13_0.php line 1

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace Boldr\Cms\CmsBundle\Migrations;
  4. use Doctrine\DBAL\Schema\Schema;
  5. use Boldr\Cms\CmsBundle\BoldrCmsMigration;
  6. final class Version1__13_0 extends BoldrCmsMigration
  7. {
  8.     public function getBundle(): string { return 'boldr/cms-bundle'; }
  9.     public function getVersion(): ?string { return '1.13.0'; }
  10.     public function up(Schema $schema): void
  11.     {
  12.         // Rename attachment to upload in table names and field names
  13.         $this->addSql('RENAME TABLE cms_attachment TO cms_upload');
  14.         $this->addSql('RENAME TABLE cms_attachment_folder TO cms_upload_folder');
  15.         $this->addSql('RENAME TABLE cms_attachment_translation TO cms_upload_translation');
  16.         $this->addSql('RENAME TABLE cms_attachment_folder_attachment TO cms_upload_folder_upload');
  17.         $this->addSql('ALTER TABLE cms_upload_folder_upload CHANGE attachment_id upload_id INT UNSIGNED NOT NULL');
  18.         $this->addSql('ALTER TABLE cms_upload_folder_upload CHANGE attachment_folder_id upload_folder_id INT UNSIGNED NOT NULL');
  19.         $this->addSql('ALTER TABLE cms_upload_translation CHANGE attachment_id upload_id INT UNSIGNED NOT NULL');
  20.         // Rename indices
  21.         $this->addSql('ALTER TABLE cms_upload_folder_upload DROP FOREIGN KEY FK_EDAB6295464E68B');
  22.         $this->addSql('ALTER TABLE cms_upload_folder_upload DROP FOREIGN KEY FK_EDAB629560F4EB61');
  23.         $this->addSql('DROP INDEX idx_edab6295464e68b ON cms_upload_folder_upload');
  24.         $this->addSql('CREATE INDEX IDX_9F749ABECCCFBA31 ON cms_upload_folder_upload (upload_id)');
  25.         $this->addSql('DROP INDEX idx_edab629560f4eb61 ON cms_upload_folder_upload');
  26.         $this->addSql('CREATE INDEX IDX_9F749ABE2BB35B6D ON cms_upload_folder_upload (upload_folder_id)');
  27.         $this->addSql('ALTER TABLE cms_upload_folder_upload ADD CONSTRAINT FK_EDAB6295464E68B FOREIGN KEY (upload_id) REFERENCES cms_upload (id) ON DELETE CASCADE');
  28.         $this->addSql('ALTER TABLE cms_upload_folder_upload ADD CONSTRAINT FK_EDAB629560F4EB61 FOREIGN KEY (upload_folder_id) REFERENCES cms_upload_folder (id) ON DELETE CASCADE');
  29.         $this->addSql('ALTER TABLE cms_upload_translation DROP FOREIGN KEY FK_C5C14BFF464E68B');
  30.         $this->addSql('DROP INDEX idx_c5c14bff464e68b ON cms_upload_translation');
  31.         $this->addSql('CREATE INDEX IDX_EAAC1044CCCFBA31 ON cms_upload_translation (upload_id)');
  32.         $this->addSql('ALTER TABLE cms_upload_translation ADD CONSTRAINT FK_C5C14BFF464E68B FOREIGN KEY (upload_id) REFERENCES cms_upload (id)');
  33.         // Create cms_upload_track
  34.         $this->addSql('CREATE TABLE cms_upload_track (id INT UNSIGNED AUTO_INCREMENT NOT NULL, upload_id INT UNSIGNED NOT NULL, document_id INT UNSIGNED NOT NULL, locale VARCHAR(10) NOT NULL, type VARCHAR(255) NOT NULL, label VARCHAR(255) NOT NULL, INDEX IDX_7E9D42C3CCCFBA31 (upload_id), INDEX IDX_7E9D42C3C33F7837 (document_id), PRIMARY KEY(id)) ENGINE = InnoDB');
  35.         $this->addSql('ALTER TABLE cms_upload_track ADD CONSTRAINT FK_7E9D42C3CCCFBA31 FOREIGN KEY (upload_id) REFERENCES cms_upload (id) ON DELETE CASCADE');
  36.         $this->addSql('ALTER TABLE cms_upload_track ADD CONSTRAINT FK_7E9D42C3C33F7837 FOREIGN KEY (document_id) REFERENCES cms_upload (id) ON DELETE CASCADE');
  37.         $this->addSql('ALTER TABLE cms_upload CHANGE attachment public_name VARCHAR(255) NOT NULL, ADD type SMALLINT DEFAULT 3 NOT NULL, ADD width INT DEFAULT NULL, ADD height INT DEFAULT NULL, CHANGE size size INT DEFAULT NULL, ADD derivatives JSON DEFAULT NULL, ADD enqueued_derivatives JSON DEFAULT NULL, CHANGE path storage_identifier VARCHAR(255) NOT NULL');
  38.         $this->addSql('UPDATE cms_upload SET `type` = 0 WHERE mime_type LIKE \'image/%\'');
  39.         $this->addSql('UPDATE cms_upload SET `type` = 0, mime_type = \'image/svg+xml\' WHERE public_name LIKE \'%.svg\'');
  40.         $this->addSql('UPDATE cms_upload SET `type` = 1 WHERE mime_type LIKE \'video/%\'');
  41.         $this->addSql('UPDATE cms_upload SET `type` = 2 WHERE mime_type LIKE \'audio/%\'');
  42.     }
  43. }