migrations/Version20260721065217.php line 1

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace DoctrineMigrations;
  4. use Doctrine\DBAL\Schema\Schema;
  5. use Doctrine\Migrations\AbstractMigration;
  6. /**
  7.  * Auto-generated Migration: Please modify to your needs!
  8.  */
  9. final class Version20260721065217 extends AbstractMigration
  10. {
  11.     public function getDescription(): string
  12.     {
  13.         return '';
  14.     }
  15.     public function up(Schema $schema): void
  16.     {
  17.         // this up() migration is auto-generated, please modify it to your needs
  18.         $this->addSql('CREATE TABLE channel_configuration_dsf_services (channel_configuration_id INT NOT NULL, service_id INT NOT NULL, INDEX IDX_24EA11C4A493463 (channel_configuration_id), INDEX IDX_24EA11CED5CA9E6 (service_id), PRIMARY KEY(channel_configuration_id, service_id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  19.         $this->addSql('CREATE TABLE file_admin_channel_user_data_agreement (id INT NOT NULL, status VARCHAR(255) DEFAULT NULL, refusal_reason VARCHAR(255) DEFAULT NULL, signed_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  20.         $this->addSql('CREATE TABLE file_admin_channel_user_data_document (id INT NOT NULL, channel_user_data_id VARCHAR(36) NOT NULL, document_issued_date DATE NOT NULL, last_notified_at DATE DEFAULT NULL, INDEX IDX_1D42B0D523887597 (channel_user_data_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
  21.         $this->addSql('ALTER TABLE channel_configuration_dsf_services ADD CONSTRAINT FK_24EA11C4A493463 FOREIGN KEY (channel_configuration_id) REFERENCES channel_configuration (id) ON DELETE CASCADE');
  22.         $this->addSql('ALTER TABLE channel_configuration_dsf_services ADD CONSTRAINT FK_24EA11CED5CA9E6 FOREIGN KEY (service_id) REFERENCES channel_services (id) ON DELETE CASCADE');
  23.         $this->addSql('ALTER TABLE file_admin_channel_user_data_agreement ADD CONSTRAINT FK_617F834CBF396750 FOREIGN KEY (id) REFERENCES file (id) ON DELETE CASCADE');
  24.         $this->addSql('ALTER TABLE file_admin_channel_user_data_document ADD CONSTRAINT FK_1D42B0D523887597 FOREIGN KEY (channel_user_data_id) REFERENCES channel_user_data_admin (id) ON DELETE CASCADE');
  25.         $this->addSql('ALTER TABLE file_admin_channel_user_data_document ADD CONSTRAINT FK_1D42B0D5BF396750 FOREIGN KEY (id) REFERENCES file (id) ON DELETE CASCADE');
  26.         // Moves data from "certificate" to abstract "document"
  27.         $this->addSql('
  28.             INSERT INTO file_admin_channel_user_data_document (
  29.                 id,
  30.                 channel_user_data_id,
  31.                 document_issued_date,
  32.                 last_notified_at
  33.             )
  34.             SELECT
  35.                 certificate.id,
  36.                 certificate.channel_user_data_id,
  37.                 DATE(file.created_at),
  38.                 NULL
  39.             FROM file_admin_channel_user_data_certificate certificate
  40.             INNER JOIN file ON file.id = certificate.id
  41.         ');
  42.         $this->addSql('ALTER TABLE file_admin_channel_user_data_certificate DROP FOREIGN KEY FK_73B71E8F23887597');
  43.         $this->addSql('DROP INDEX IDX_73B71E8F23887597 ON file_admin_channel_user_data_certificate');
  44.         $this->addSql('DROP INDEX UNIQ_73B71E8F23887597F2C76A50 ON file_admin_channel_user_data_certificate');
  45.         $this->addSql('ALTER TABLE file_admin_channel_user_data_certificate DROP channel_user_data_id');
  46.     }
  47.     public function down(Schema $schema): void
  48.     {
  49.         // this down() migration is auto-generated, please modify it to your needs
  50.         $this->addSql('ALTER TABLE channel_configuration_dsf_services DROP FOREIGN KEY FK_24EA11C4A493463');
  51.         $this->addSql('ALTER TABLE channel_configuration_dsf_services DROP FOREIGN KEY FK_24EA11CED5CA9E6');
  52.         $this->addSql('ALTER TABLE file_admin_channel_user_data_agreement DROP FOREIGN KEY FK_617F834CBF396750');
  53.         $this->addSql('ALTER TABLE file_admin_channel_user_data_document DROP FOREIGN KEY FK_1D42B0D523887597');
  54.         $this->addSql('ALTER TABLE file_admin_channel_user_data_document DROP FOREIGN KEY FK_1D42B0D5BF396750');
  55.         $this->addSql('ALTER TABLE file_admin_channel_user_data_certificate ADD channel_user_data_id VARCHAR(36) DEFAULT NULL');
  56.         $this->addSql('UPDATE file_admin_channel_user_data_certificate certificate INNER JOIN file_admin_channel_user_data_document document ON document.id = certificate.id SET certificate.channel_user_data_id = document.channel_user_data_id');
  57.         $this->addSql('ALTER TABLE file_admin_channel_user_data_certificate MODIFY channel_user_data_id VARCHAR(36) NOT NULL');
  58.         $this->addSql('DROP TABLE channel_configuration_dsf_services');
  59.         $this->addSql('DROP TABLE file_admin_channel_user_data_agreement');
  60.         $this->addSql('DROP TABLE file_admin_channel_user_data_document');
  61.         $this->addSql('ALTER TABLE file_admin_channel_user_data_certificate ADD CONSTRAINT FK_73B71E8F23887597 FOREIGN KEY (channel_user_data_id) REFERENCES channel_user_data_admin (id) ON DELETE CASCADE');
  62.         $this->addSql('CREATE INDEX IDX_73B71E8F23887597 ON file_admin_channel_user_data_certificate (channel_user_data_id)');
  63.         $this->addSql('CREATE UNIQUE INDEX UNIQ_73B71E8F23887597F2C76A50 ON file_admin_channel_user_data_certificate (channel_user_data_id, certificate_type)');
  64.     }
  65. }