migrations/Version20241209064741.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 Version20241209064741 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 `dp_product_variant_versions` (
  19.             `id` int NOT NULL,
  20.             `product_id` int DEFAULT NULL,
  21.             `product_variant_id` int DEFAULT NULL,
  22.             `company_id` int NOT NULL,
  23.             `hitachi_part_no` varchar(255) DEFAULT NULL,
  24.             `model_no` varchar(255) DEFAULT NULL,
  25.             `hitachi_uk_code` varchar(255) DEFAULT NULL,
  26.             `project` varchar(255) DEFAULT NULL,
  27.             `production_colour` varchar(255) DEFAULT NULL,
  28.             `customer_id` int DEFAULT NULL,
  29.             `packaging` int DEFAULT NULL,
  30.             `connector` int DEFAULT NULL,
  31.             `checksum` varchar(255) DEFAULT NULL,
  32.             `box` int DEFAULT NULL,
  33.             `comment` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
  34.             `is_deleted` tinyint NOT NULL DEFAULT '0',
  35.             `created_by` int DEFAULT NULL,
  36.             `updated_by` int DEFAULT NULL,
  37.             `created_at` datetime DEFAULT NULL,
  38.             `updated_at` datetime DEFAULT NULL,
  39.             `deleted_by` int DEFAULT NULL,
  40.             `deleted_at` datetime DEFAULT NULL
  41.             ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;"
  42.         );
  43.         $this->addSql("ALTER TABLE `dp_product_variant_versions` ADD PRIMARY KEY (`id`);");
  44.         $this->addSql("ALTER TABLE `dp_product_variant_versions` MODIFY `id` int NOT NULL AUTO_INCREMENT;");
  45.         $this->addSql("ALTER TABLE `dp_product_variant_versions` ADD `version` INT NOT NULL DEFAULT '1' AFTER `deleted_at`;");
  46.         $this->addSql("ALTER TABLE `dp_product_variant_versions` 
  47.             ADD FOREIGN KEY (`created_by`) REFERENCES `user`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT, 
  48.             ADD FOREIGN KEY (`updated_by`) REFERENCES `user`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT, 
  49.             ADD FOREIGN KEY (`deleted_by`) REFERENCES `user`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT, 
  50.             ADD FOREIGN KEY (`company_id`) REFERENCES `company`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT, 
  51.             ADD FOREIGN KEY (`customer_id`) REFERENCES `dp_customers`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT, 
  52.             ADD FOREIGN KEY (`product_id`) REFERENCES `dp_products`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT, 
  53.             ADD FOREIGN KEY (`packaging`) REFERENCES `dp_manage_package`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;"
  54.         );
  55.         $this->addSql("ALTER TABLE `dp_product_variant_versions` 
  56.             ADD FOREIGN KEY (`product_variant_id`) REFERENCES `dp_product_variants`(`id`) 
  57.             ON DELETE RESTRICT ON UPDATE RESTRICT;"
  58.         );
  59.         //add product_variant_version_id in dp_product_variants table
  60.         $this->addSql("ALTER TABLE `dp_product_variants` ADD `latest_version_id` INT NULL;");
  61.         //add foriegn key
  62.         $this->addSql("ALTER TABLE `dp_product_variants` ADD FOREIGN KEY (`latest_version_id`) REFERENCES `dp_product_variant_versions`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;");
  63.     }
  64.     public function down(Schema $schema): void
  65.     {
  66.         // this down() migration is auto-generated, please modify it to your needs
  67.         $this->addSql('ALTER TABLE `dp_product_variant_versions` DROP FOREIGN KEY `dp_product_variant_versions_ibfk_8`;');
  68.         $this->addSql('ALTER TABLE `dp_product_variant_versions` DROP FOREIGN KEY `dp_product_variant_versions_ibfk_7`;');
  69.         $this->addSql('ALTER TABLE `dp_product_variant_versions` DROP FOREIGN KEY `dp_product_variant_versions_ibfk_6`;');
  70.         $this->addSql('ALTER TABLE `dp_product_variant_versions` DROP FOREIGN KEY `dp_product_variant_versions_ibfk_5`;');
  71.         $this->addSql('ALTER TABLE `dp_product_variant_versions` DROP FOREIGN KEY `dp_product_variant_versions_ibfk_4`;');
  72.         $this->addSql('ALTER TABLE `dp_product_variant_versions` DROP FOREIGN KEY `dp_product_variant_versions_ibfk_3`;');
  73.         $this->addSql('ALTER TABLE `dp_product_variant_versions` DROP FOREIGN KEY `dp_product_variant_versions_ibfk_2`;');
  74.         $this->addSql('ALTER TABLE `dp_product_variant_versions` DROP FOREIGN KEY `dp_product_variant_versions_ibfk_1`;');
  75.         //drop product_variant_version_id in dp_product_variants table
  76.         $this->addSql('ALTER TABLE `dp_product_variants` DROP FOREIGN KEY `dp_product_variants_ibfk_10`;');
  77.         $this->addSql('ALTER TABLE `dp_product_variants` DROP `latest_version_id`;');
  78.         
  79.         //drop table dp_product_variant_versions
  80.         $this->addSql('DROP TABLE `dp_product_variant_versions`');
  81.     }
  82. }