migrations/Version20230929113725.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.  * Migration 4 - Changes from db change paintech, sprint 12 and 13
  8.  */
  9. final class Version20230929113725 extends AbstractMigration
  10. {
  11.     public function getDescription(): string
  12.     {
  13.         return '';
  14.     }
  15.     public function up(Schema $schema): void
  16.     {
  17.          $this->addSql("CREATE TABLE IF NOT EXISTS `tc_board_activity_log` (
  18.                         `id` int(11) NOT NULL AUTO_INCREMENT,
  19.                         `company_id` int(11) NOT NULL,
  20.                         `board_id` int(11) DEFAULT NULL,
  21.                         `form_id` int(11) DEFAULT NULL,
  22.                         `action` varchar(255) NOT NULL,
  23.                         `from_data` mediumtext DEFAULT NULL,
  24.                         `to_data` mediumtext DEFAULT NULL,
  25.                         `done_at` datetime NOT NULL,
  26.                         `done_by` int(11) NOT NULL,
  27.                         PRIMARY KEY (`id`),
  28.                         KEY `company_id` (`company_id`),
  29.                         KEY `done_by` (`done_by`),
  30.                         KEY `board_id` (`board_id`),
  31.                         KEY `form_id` (`form_id`),
  32.                         CONSTRAINT `tc_board_activity_log_ibfk_1` FOREIGN KEY (`company_id`) REFERENCES `company` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION,
  33.                         CONSTRAINT `tc_board_activity_log_ibfk_3` FOREIGN KEY (`done_by`) REFERENCES `user` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  34.                         CONSTRAINT `tc_board_activity_log_ibfk_4` FOREIGN KEY (`board_id`) REFERENCES `tc_board` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION,
  35.                         CONSTRAINT `tc_board_activity_log_ibfk_5` FOREIGN KEY (`form_id`) REFERENCES `tc_forms` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION
  36.                        ) ENGINE=InnoDB AUTO_INCREMENT=242 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci;");
  37.          
  38.          $this->addSql("CREATE TABLE IF NOT EXISTS `tc_board_column_user` (
  39.                         `id` int(11) NOT NULL AUTO_INCREMENT,
  40.                         `company_id` int(11) NOT NULL,
  41.                         `board_id` int(11) NOT NULL,
  42.                         `column_id` int(11) NOT NULL,
  43.                         `user_id` int(11) DEFAULT NULL,
  44.                         `created_at` datetime NOT NULL,
  45.                         `assigned_by` int(11) NOT NULL,
  46.                         `assigned_at` datetime NOT NULL,
  47.                         PRIMARY KEY (`id`),
  48.                         KEY `tc_board_column_user_ibfk_1` (`company_id`),
  49.                         KEY `tc_board_column_user_ibfk_2` (`board_id`),
  50.                         KEY `tc_board_column_user_ibfk_3` (`column_id`),
  51.                         KEY `tc_board_column_user_ibfk_4` (`user_id`),
  52.                         KEY `tc_board_column_user_ibfk_5` (`assigned_by`),
  53.                         CONSTRAINT `tc_board_column_user_ibfk_1` FOREIGN KEY (`company_id`) REFERENCES `company` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION,
  54.                         CONSTRAINT `tc_board_column_user_ibfk_2` FOREIGN KEY (`board_id`) REFERENCES `tc_board` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION,
  55.                         CONSTRAINT `tc_board_column_user_ibfk_3` FOREIGN KEY (`column_id`) REFERENCES `tc_board_columns` (`id`),
  56.                         CONSTRAINT `tc_board_column_user_ibfk_4` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`),
  57.                         CONSTRAINT `tc_board_column_user_ibfk_5` FOREIGN KEY (`assigned_by`) REFERENCES `user` (`id`)
  58.                        ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci;");
  59.          $this->addSql("CREATE TABLE IF NOT EXISTS `tc_board_row_user` (
  60.                         `id` int(11) NOT NULL AUTO_INCREMENT,
  61.                         `company_id` int(11) NOT NULL,
  62.                         `board_id` int(11) NOT NULL,
  63.                         `row_id` int(11) NOT NULL,
  64.                         `user_id` int(11) DEFAULT NULL,
  65.                         `created_at` datetime NOT NULL,
  66.                         `assigned_by` int(11) NOT NULL,
  67.                         `assigned_at` datetime NOT NULL,
  68.                         PRIMARY KEY (`id`),
  69.                         KEY `tc_board_row_user_ibfk_1` (`company_id`),
  70.                         KEY `tc_board_row_user_ibfk_2` (`board_id`),
  71.                         KEY `tc_board_row_user_ibfk_3` (`row_id`),
  72.                         KEY `tc_board_row_user_ibfk_4` (`user_id`),
  73.                         KEY `tc_board_row_user_ibfk_5` (`assigned_by`),
  74.                         CONSTRAINT `tc_board_row_user_ibfk_1` FOREIGN KEY (`company_id`) REFERENCES `company` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION,
  75.                         CONSTRAINT `tc_board_row_user_ibfk_2` FOREIGN KEY (`board_id`) REFERENCES `tc_board` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION,
  76.                         CONSTRAINT `tc_board_row_user_ibfk_3` FOREIGN KEY (`row_id`) REFERENCES `tc_board_rows` (`id`),
  77.                         CONSTRAINT `tc_board_row_user_ibfk_4` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`),
  78.                         CONSTRAINT `tc_board_row_user_ibfk_5` FOREIGN KEY (`assigned_by`) REFERENCES `user` (`id`)
  79.                        ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci;");
  80.          
  81.          $this->addSql("ALTER TABLE `tc_card_activity_log` DROP FOREIGN KEY `tc_card_activity_log_ibfk_2`; ");
  82.          $this->addSql("ALTER TABLE `tc_card_activity_log` ADD CONSTRAINT `tc_card_activity_log_ibfk_2` FOREIGN KEY (`card_id`) REFERENCES `tc_board_cards`(`id`) ON DELETE CASCADE ON UPDATE NO ACTION; ");
  83.          $this->addSql("ALTER TABLE `tc_card_activity_log` DROP FOREIGN KEY `tc_card_activity_log_ibfk_3`; ");
  84.          $this->addSql("ALTER TABLE `tc_card_activity_log` ADD CONSTRAINT `tc_card_activity_log_ibfk_3` FOREIGN KEY (`done_by`) REFERENCES `user`(`id`) ON DELETE CASCADE ON UPDATE NO ACTION;");
  85.          $this->addSql("ALTER TABLE `company_settings`  
  86.                             ADD `has_skill` TINYINT(1) NOT NULL DEFAULT '0'  AFTER `has_draft_cards`,  
  87.                             ADD `has_auto_refresh` TINYINT(1) NOT NULL DEFAULT '0'  AFTER `has_skill`,  
  88.                             ADD `has_generate_report` TINYINT(1) NOT NULL DEFAULT '0'  AFTER `has_auto_refresh`,  
  89.                             ADD `has_tcard_layout` TINYINT(1) NOT NULL DEFAULT '1'  AFTER `has_generate_report`;");
  90.          
  91.          $this->addSql("ALTER TABLE `company_settings` ADD `enable_assign_user_to_row` TINYINT(1) NOT NULL DEFAULT '0' AFTER `has_tcard_layout`;");
  92.          $this->addSql("ALTER TABLE `company_settings` ADD `enable_assign_user_to_column` TINYINT(1) NOT NULL DEFAULT '0' AFTER `enable_assign_user_to_row`;");
  93.          
  94.          $this->addSql("ALTER TABLE `tc_forms` ADD `card_color_field_id` INT NULL DEFAULT NULL AFTER `is_deleted`;");
  95.          $this->addSql("ALTER TABLE `tc_forms` ADD INDEX(`card_color_field_id`);");
  96.          $this->addSql("ALTER TABLE `tc_forms` ADD FOREIGN KEY (`card_color_field_id`) REFERENCES `tc_form_field`(`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;");
  97.          $this->addSql("ALTER TABLE `tc_forms` ADD `show_refid_as_card_header` TINYINT(1) NULL DEFAULT '1' AFTER `card_color_field_id`;");
  98.          
  99.          $this->addSql("ALTER TABLE `tc_report_generation` CHANGE `updated_at` `updated_at` DATETIME NULL DEFAULT NULL;");
  100.          $this->addSql("ALTER TABLE `tc_report_generation` CHANGE `deleted_at` `deleted_at` DATETIME NULL DEFAULT NULL;");
  101.          $this->addSql("ALTER TABLE `tc_report_generation` ADD `has_serial_number` TINYINT NOT NULL DEFAULT '0' AFTER `has_search`;");
  102.          
  103.          $this->addSql("ALTER TABLE `tc_report_generation_form_fields` ADD `board_id` INT(11) NULL DEFAULT NULL AFTER `form_id`;");
  104.          $this->addSql("ALTER TABLE `tc_report_generation_form_fields` ADD INDEX(`board_id`);");
  105.          $this->addSql("ALTER TABLE `tc_report_generation_form_fields` ADD FOREIGN KEY (`board_id`) REFERENCES `tc_board`(`id`) ON DELETE CASCADE ON UPDATE RESTRICT;");
  106.          
  107.          $this->addSql("ALTER TABLE `tc_board_cards` ADD `sort_order` INT NOT NULL DEFAULT '1' AFTER `row_id`;");
  108.          $this->addSql("ALTER TABLE `tc_form_field` CHANGE `defualt_value` `defualt_value` TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL;");
  109.          $this->addSql("INSERT INTO `terminology` (`id`, `terminology_key`, `singular_text`, `plural_text`) VALUES (NULL, 'full_capacity', 'Full Capacity', 'Full Capacity');");
  110.          
  111.     }
  112.     public function down(Schema $schema): void
  113.     {
  114.         $this->addSql('DROP TABLE IF EXISTS `tc_board_activity_log`;');
  115.         $this->addSql('DROP TABLE IF EXISTS `tc_board_column_user`;');
  116.         $this->addSql('DROP TABLE IF EXISTS `tc_board_row_user`;');
  117.         $this->addSql("ALTER TABLE `tc_card_activity_log` DROP FOREIGN KEY `tc_card_activity_log_ibfk_2`;");
  118.         $this->addSql('ALTER TABLE `tc_card_activity_log` ADD CONSTRAINT `tc_card_activity_log_ibfk_2` FOREIGN KEY (`card_id`) REFERENCES `tc_board_cards`(`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;');
  119.         $this->addSql("ALTER TABLE `tc_card_activity_log` DROP FOREIGN KEY `tc_card_activity_log_ibfk_3`;");
  120.         $this->addSql('ALTER TABLE `tc_card_activity_log` ADD CONSTRAINT `tc_card_activity_log_ibfk_3` FOREIGN KEY (`done_by`) REFERENCES `user`(`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;');
  121.         $this->addSql('ALTER TABLE `company_settings` DROP IF EXISTS `has_skill`;');
  122.         $this->addSql('ALTER TABLE `company_settings` DROP IF EXISTS `has_auto_refresh`;');
  123.         $this->addSql('ALTER TABLE `company_settings` DROP IF EXISTS `has_generate_report`;');
  124.         $this->addSql('ALTER TABLE `company_settings` DROP IF EXISTS `has_tcard_layout`;');
  125.         $this->addSql('ALTER TABLE `company_settings` DROP IF EXISTS `enable_assign_user_to_row`;');
  126.         $this->addSql('ALTER TABLE `company_settings` DROP IF EXISTS `enable_assign_user_to_column`;');
  127.         $this->addSql('ALTER TABLE `tc_forms` DROP IF EXISTS `card_color_field_id`;');
  128.         $this->addSql('ALTER TABLE `tc_forms` DROP IF EXISTS `show_refid_as_card_header`;');
  129.         $this->addSql('ALTER TABLE `tc_report_generation` DROP IF EXISTS `has_serial_number`;');
  130.         $this->addSql('ALTER TABLE `tc_report_generation_form_fields` DROP IF EXISTS `board_id`;');
  131.         $this->addSql('ALTER TABLE `tc_board_cards` DROP IF EXISTS `sort_order`;');
  132.         $this->addSql('ALTER TABLE `tc_form_field` CHANGE `defualt_value` `defualt_value` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL;');
  133.         $this->addSql('DELETE FROM `terminology` WHERE `terminology`.`terminology_key` = ?', array('full_capacity'));
  134.     }
  135. }