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

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace Boldr\Cms\CmsBundle\Migrations;
  4. use Boldr\Cms\CmsBundle\BoldrCmsMigration;
  5. use Doctrine\DBAL\Schema\Schema;
  6. final class Version0_Install extends BoldrCmsMigration
  7. {
  8.     public function getBundle(): string { return 'boldr/cms-bundle'; }
  9.     public function getVersion(): ?string { return null; }
  10.     public function up(Schema $schema): void
  11.     {
  12.         // this up() migration is auto-generated, please modify it to your needs
  13.         $this->addSql('CREATE TABLE cms_admin_user (id INT UNSIGNED AUTO_INCREMENT NOT NULL, username VARCHAR(255) NOT NULL, password_hash VARCHAR(255) DEFAULT NULL, `groups` JSON NOT NULL, roles JSON DEFAULT NULL, dashboard_widgets JSON DEFAULT NULL, paginator_size INT UNSIGNED DEFAULT 15 NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  14.         $this->addSql('CREATE TABLE cms_attachment_usage (id INT UNSIGNED AUTO_INCREMENT NOT NULL, attachment_id INT UNSIGNED DEFAULT NULL, search_text VARCHAR(1000) NOT NULL, type VARCHAR(255) NOT NULL, INDEX IDX_F66AE123464E68B (attachment_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  15.         $this->addSql('CREATE TABLE cms_home_menu_item (id INT UNSIGNED NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  16.         $this->addSql('CREATE TABLE cms_home_menu_item_translation (id INT UNSIGNED AUTO_INCREMENT NOT NULL, menu_item_id INT UNSIGNED NOT NULL, locale VARCHAR(10) NOT NULL, text VARCHAR(255) NOT NULL, INDEX IDX_36DAE1699AB44FE0 (menu_item_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  17.         $this->addSql('CREATE TABLE cms_menu (id INT UNSIGNED AUTO_INCREMENT NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  18.         $this->addSql('CREATE TABLE cms_menu_item (id INT UNSIGNED AUTO_INCREMENT NOT NULL, menu_id INT UNSIGNED NOT NULL, parent_id INT UNSIGNED DEFAULT NULL, open_in_new_window TINYINT(1) DEFAULT \'0\' NOT NULL, sort_order INT DEFAULT 0 NOT NULL, hidden_locales JSON DEFAULT NULL, type VARCHAR(255) NOT NULL, INDEX IDX_1432B53DCCD7E912 (menu_id), INDEX IDX_1432B53D727ACA70 (parent_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  19.         $this->addSql('CREATE TABLE cms_menu_location (id INT UNSIGNED AUTO_INCREMENT NOT NULL, menu_id INT UNSIGNED DEFAULT NULL, location VARCHAR(255) NOT NULL, INDEX IDX_C29E7788CCD7E912 (menu_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  20.         $this->addSql('CREATE TABLE cms_menu_translation (id INT UNSIGNED AUTO_INCREMENT NOT NULL, menu_id INT UNSIGNED NOT NULL, locale VARCHAR(10) NOT NULL, name VARCHAR(255) NOT NULL, INDEX IDX_4C8ABA59CCD7E912 (menu_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  21.         $this->addSql('CREATE TABLE cms_page (id INT UNSIGNED AUTO_INCREMENT NOT NULL, parent_id INT UNSIGNED DEFAULT NULL, primary_image_id INT UNSIGNED DEFAULT NULL, layout VARCHAR(50) DEFAULT \'default\' NOT NULL, serialized_layout LONGTEXT DEFAULT NULL, time_last_updated DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', published TINYINT(1) DEFAULT \'1\' NOT NULL, synchronize_translations TINYINT(1) DEFAULT \'0\' NOT NULL, type VARCHAR(255) DEFAULT NULL, INDEX IDX_D39C1B5D727ACA70 (parent_id), INDEX IDX_D39C1B5D1CDA489C (primary_image_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  22.         $this->addSql('CREATE TABLE cms_page_attachment_usage (id INT UNSIGNED NOT NULL, page_id INT UNSIGNED DEFAULT NULL, INDEX IDX_BCE8F8E1C4663E4 (page_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  23.         $this->addSql('CREATE TABLE cms_page_menu_item (id INT UNSIGNED NOT NULL, page_id INT UNSIGNED DEFAULT NULL, INDEX IDX_1AB31D7FC4663E4 (page_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  24.         $this->addSql('CREATE TABLE cms_page_translation (id INT UNSIGNED AUTO_INCREMENT NOT NULL, page_id INT UNSIGNED NOT NULL, locale VARCHAR(10) NOT NULL, title VARCHAR(255) NOT NULL, description VARCHAR(1000) NOT NULL, sections LONGTEXT NOT NULL, modern_sections TINYINT(1) DEFAULT \'0\' NOT NULL, section_hashes JSON NOT NULL, permalink VARCHAR(255) NOT NULL, INDEX IDX_33CAFA67C4663E4 (page_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  25.         $this->addSql('CREATE TABLE cms_page_translation_search_data (id INT UNSIGNED NOT NULL, page_translation_id INT UNSIGNED DEFAULT NULL, UNIQUE INDEX UNIQ_E7D38CE42D301871 (page_translation_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  26.         $this->addSql('CREATE TABLE cms_search_data (id INT UNSIGNED AUTO_INCREMENT NOT NULL, search_data LONGTEXT NOT NULL, locale VARCHAR(255) DEFAULT NULL, dtype VARCHAR(255) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  27.         $this->addSql('CREATE TABLE cms_simple_menu_item (id INT UNSIGNED NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  28.         $this->addSql('CREATE TABLE cms_simple_menu_item_translation (id INT UNSIGNED AUTO_INCREMENT NOT NULL, menu_item_id INT UNSIGNED NOT NULL, locale VARCHAR(10) NOT NULL, text VARCHAR(255) DEFAULT NULL, INDEX IDX_AD206F259AB44FE0 (menu_item_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  29.         $this->addSql('CREATE TABLE cms_upload (id INT UNSIGNED AUTO_INCREMENT NOT NULL, type SMALLINT DEFAULT 3 NOT NULL, storage_identifier VARCHAR(255) NOT NULL, public_name VARCHAR(255) NOT NULL, derivatives JSON DEFAULT NULL, enqueued_derivatives JSON DEFAULT NULL, mime_type VARCHAR(255) NOT NULL, size INT DEFAULT NULL, width INT DEFAULT NULL, height INT DEFAULT NULL, time_uploaded DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  30.         $this->addSql('CREATE TABLE cms_upload_folder_upload (upload_id INT UNSIGNED NOT NULL, upload_folder_id INT UNSIGNED NOT NULL, INDEX IDX_9F749ABECCCFBA31 (upload_id), INDEX IDX_9F749ABE2BB35B6D (upload_folder_id), PRIMARY KEY(upload_id, upload_folder_id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  31.         $this->addSql('CREATE TABLE cms_upload_folder (id INT UNSIGNED AUTO_INCREMENT NOT NULL, name VARCHAR(255) DEFAULT \'\' NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  32.         $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)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  33.         $this->addSql('CREATE TABLE cms_upload_translation (id INT UNSIGNED AUTO_INCREMENT NOT NULL, upload_id INT UNSIGNED NOT NULL, locale VARCHAR(10) NOT NULL, display_name VARCHAR(255) NOT NULL, description VARCHAR(255) NOT NULL, INDEX IDX_EAAC1044CCCFBA31 (upload_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  34.         $this->addSql('CREATE TABLE cms_url_menu_item (id INT UNSIGNED NOT NULL, url VARCHAR(255) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  35.         $this->addSql('CREATE TABLE cms_url_menu_item_translation (id INT UNSIGNED AUTO_INCREMENT NOT NULL, menu_item_id INT UNSIGNED NOT NULL, locale VARCHAR(10) NOT NULL, text VARCHAR(255) NOT NULL, INDEX IDX_AD63A7EA9AB44FE0 (menu_item_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  36.         $this->addSql('ALTER TABLE cms_attachment_usage ADD CONSTRAINT FK_F66AE123464E68B FOREIGN KEY (attachment_id) REFERENCES cms_upload (id)');
  37.         $this->addSql('ALTER TABLE cms_home_menu_item ADD CONSTRAINT FK_5F89DBF4BF396750 FOREIGN KEY (id) REFERENCES cms_menu_item (id) ON DELETE CASCADE');
  38.         $this->addSql('ALTER TABLE cms_home_menu_item_translation ADD CONSTRAINT FK_36DAE1699AB44FE0 FOREIGN KEY (menu_item_id) REFERENCES cms_home_menu_item (id)');
  39.         $this->addSql('ALTER TABLE cms_menu_item ADD CONSTRAINT FK_1432B53DCCD7E912 FOREIGN KEY (menu_id) REFERENCES cms_menu (id)');
  40.         $this->addSql('ALTER TABLE cms_menu_item ADD CONSTRAINT FK_1432B53D727ACA70 FOREIGN KEY (parent_id) REFERENCES cms_menu_item (id)');
  41.         $this->addSql('ALTER TABLE cms_menu_location ADD CONSTRAINT FK_C29E7788CCD7E912 FOREIGN KEY (menu_id) REFERENCES cms_menu (id)');
  42.         $this->addSql('ALTER TABLE cms_menu_translation ADD CONSTRAINT FK_4C8ABA59CCD7E912 FOREIGN KEY (menu_id) REFERENCES cms_menu (id)');
  43.         $this->addSql('ALTER TABLE cms_page ADD CONSTRAINT FK_D39C1B5D727ACA70 FOREIGN KEY (parent_id) REFERENCES cms_page (id)');
  44.         $this->addSql('ALTER TABLE cms_page ADD CONSTRAINT FK_D39C1B5D1CDA489C FOREIGN KEY (primary_image_id) REFERENCES cms_upload (id)');
  45.         $this->addSql('ALTER TABLE cms_page_attachment_usage ADD CONSTRAINT FK_BCE8F8E1C4663E4 FOREIGN KEY (page_id) REFERENCES cms_page (id)');
  46.         $this->addSql('ALTER TABLE cms_page_attachment_usage ADD CONSTRAINT FK_BCE8F8E1BF396750 FOREIGN KEY (id) REFERENCES cms_attachment_usage (id) ON DELETE CASCADE');
  47.         $this->addSql('ALTER TABLE cms_page_menu_item ADD CONSTRAINT FK_1AB31D7FC4663E4 FOREIGN KEY (page_id) REFERENCES cms_page (id) ON DELETE SET NULL');
  48.         $this->addSql('ALTER TABLE cms_page_menu_item ADD CONSTRAINT FK_1AB31D7FBF396750 FOREIGN KEY (id) REFERENCES cms_menu_item (id) ON DELETE CASCADE');
  49.         $this->addSql('ALTER TABLE cms_page_translation ADD CONSTRAINT FK_33CAFA67C4663E4 FOREIGN KEY (page_id) REFERENCES cms_page (id)');
  50.         $this->addSql('ALTER TABLE cms_page_translation_search_data ADD CONSTRAINT FK_E7D38CE42D301871 FOREIGN KEY (page_translation_id) REFERENCES cms_page_translation (id)');
  51.         $this->addSql('ALTER TABLE cms_page_translation_search_data ADD CONSTRAINT FK_E7D38CE4BF396750 FOREIGN KEY (id) REFERENCES cms_search_data (id) ON DELETE CASCADE');
  52.         $this->addSql('ALTER TABLE cms_simple_menu_item ADD CONSTRAINT FK_4A0C7B76BF396750 FOREIGN KEY (id) REFERENCES cms_menu_item (id) ON DELETE CASCADE');
  53.         $this->addSql('ALTER TABLE cms_simple_menu_item_translation ADD CONSTRAINT FK_AD206F259AB44FE0 FOREIGN KEY (menu_item_id) REFERENCES cms_simple_menu_item (id) ON DELETE CASCADE');
  54.         $this->addSql('ALTER TABLE cms_upload_folder_upload ADD CONSTRAINT FK_9F749ABECCCFBA31 FOREIGN KEY (upload_id) REFERENCES cms_upload (id) ON DELETE CASCADE');
  55.         $this->addSql('ALTER TABLE cms_upload_folder_upload ADD CONSTRAINT FK_9F749ABE2BB35B6D FOREIGN KEY (upload_folder_id) REFERENCES cms_upload_folder (id) ON DELETE CASCADE');
  56.         $this->addSql('ALTER TABLE cms_upload_track ADD CONSTRAINT FK_7E9D42C3CCCFBA31 FOREIGN KEY (upload_id) REFERENCES cms_upload (id) ON DELETE CASCADE');
  57.         $this->addSql('ALTER TABLE cms_upload_track ADD CONSTRAINT FK_7E9D42C3C33F7837 FOREIGN KEY (document_id) REFERENCES cms_upload (id) ON DELETE CASCADE');
  58.         $this->addSql('ALTER TABLE cms_upload_translation ADD CONSTRAINT FK_EAAC1044CCCFBA31 FOREIGN KEY (upload_id) REFERENCES cms_upload (id)');
  59.         $this->addSql('ALTER TABLE cms_url_menu_item ADD CONSTRAINT FK_F303356FBF396750 FOREIGN KEY (id) REFERENCES cms_menu_item (id) ON DELETE CASCADE');
  60.         $this->addSql('ALTER TABLE cms_url_menu_item_translation ADD CONSTRAINT FK_AD63A7EA9AB44FE0 FOREIGN KEY (menu_item_id) REFERENCES cms_url_menu_item (id)');
  61.         // 1.15
  62.         $this->addSql('ALTER TABLE cms_upload_folder ADD parent_id INT UNSIGNED DEFAULT NULL');
  63.         $this->addSql('ALTER TABLE cms_upload_folder ADD CONSTRAINT FK_D1D2E2A0727ACA70 FOREIGN KEY (parent_id) REFERENCES cms_upload_folder (id)');
  64.         $this->addSql('CREATE INDEX IDX_D1D2E2A0727ACA70 ON cms_upload_folder (parent_id)');
  65.         // 1.16
  66.         $this->addSql('ALTER TABLE cms_page_translation ADD draft_sections LONGTEXT DEFAULT NULL');
  67.         $this->addSql('ALTER TABLE cms_page_translation CHANGE sections sections LONGTEXT DEFAULT NULL');
  68.         $this->addSql('UPDATE cms_page_translation pt LEFT JOIN cms_page p ON p.id = pt.page_id SET draft_sections = sections, sections = NULL WHERE p.published = 0');
  69.         $this->addSql('ALTER TABLE cms_page DROP published');
  70.         // 1.24
  71.         $this->addSql('ALTER TABLE cms_upload ADD derivatives_enqueued TINYINT(1) DEFAULT \'0\' NOT NULL');
  72.     }
  73. }