migrations/Version20250419132636.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 Version20250419132636 extends AbstractMigration
  10. {
  11.     public function getDescription(): string
  12.     {
  13.         return 'Add survey tables';
  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 api_dict_survey_question_type (id UUID NOT NULL, created_by UUID DEFAULT NULL, updated_by UUID DEFAULT NULL, name VARCHAR(255) NOT NULL, code VARCHAR(255) DEFAULT NULL, created_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, updated_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, PRIMARY KEY(id))');
  19.         $this->addSql('CREATE UNIQUE INDEX UNIQ_2184A5C35E237E06 ON api_dict_survey_question_type (name)');
  20.         $this->addSql('CREATE INDEX IDX_2184A5C3DE12AB56 ON api_dict_survey_question_type (created_by)');
  21.         $this->addSql('CREATE INDEX IDX_2184A5C316FE72E1 ON api_dict_survey_question_type (updated_by)');
  22.         $this->addSql('COMMENT ON COLUMN api_dict_survey_question_type.id IS \'(DC2Type:uuid)\'');
  23.         $this->addSql('COMMENT ON COLUMN api_dict_survey_question_type.created_by IS \'(DC2Type:uuid)\'');
  24.         $this->addSql('COMMENT ON COLUMN api_dict_survey_question_type.updated_by IS \'(DC2Type:uuid)\'');
  25.         $this->addSql('CREATE TABLE api_dict_survey_status (id UUID NOT NULL, created_by UUID DEFAULT NULL, updated_by UUID DEFAULT NULL, name VARCHAR(255) NOT NULL, code VARCHAR(255) DEFAULT NULL, created_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, updated_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, PRIMARY KEY(id))');
  26.         $this->addSql('CREATE UNIQUE INDEX UNIQ_500C9C425E237E06 ON api_dict_survey_status (name)');
  27.         $this->addSql('CREATE INDEX IDX_500C9C42DE12AB56 ON api_dict_survey_status (created_by)');
  28.         $this->addSql('CREATE INDEX IDX_500C9C4216FE72E1 ON api_dict_survey_status (updated_by)');
  29.         $this->addSql('COMMENT ON COLUMN api_dict_survey_status.id IS \'(DC2Type:uuid)\'');
  30.         $this->addSql('COMMENT ON COLUMN api_dict_survey_status.created_by IS \'(DC2Type:uuid)\'');
  31.         $this->addSql('COMMENT ON COLUMN api_dict_survey_status.updated_by IS \'(DC2Type:uuid)\'');
  32.         $this->addSql('CREATE TABLE api_dict_survey_type (id UUID NOT NULL, created_by UUID DEFAULT NULL, updated_by UUID DEFAULT NULL, name VARCHAR(255) NOT NULL, code VARCHAR(255) DEFAULT NULL, created_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, updated_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, PRIMARY KEY(id))');
  33.         $this->addSql('CREATE UNIQUE INDEX UNIQ_92B7E21E5E237E06 ON api_dict_survey_type (name)');
  34.         $this->addSql('CREATE INDEX IDX_92B7E21EDE12AB56 ON api_dict_survey_type (created_by)');
  35.         $this->addSql('CREATE INDEX IDX_92B7E21E16FE72E1 ON api_dict_survey_type (updated_by)');
  36.         $this->addSql('COMMENT ON COLUMN api_dict_survey_type.id IS \'(DC2Type:uuid)\'');
  37.         $this->addSql('COMMENT ON COLUMN api_dict_survey_type.created_by IS \'(DC2Type:uuid)\'');
  38.         $this->addSql('COMMENT ON COLUMN api_dict_survey_type.updated_by IS \'(DC2Type:uuid)\'');
  39.         $this->addSql('CREATE TABLE survey (id UUID NOT NULL, type_id UUID DEFAULT NULL, status_id UUID DEFAULT NULL, created_by UUID DEFAULT NULL, updated_by UUID DEFAULT NULL, title VARCHAR(255) NOT NULL, description TEXT DEFAULT NULL, deleted_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, PRIMARY KEY(id))');
  40.         $this->addSql('CREATE INDEX IDX_AD5F9BFCC54C8C93 ON survey (type_id)');
  41.         $this->addSql('CREATE INDEX IDX_AD5F9BFC6BF700BD ON survey (status_id)');
  42.         $this->addSql('CREATE INDEX IDX_AD5F9BFCDE12AB56 ON survey (created_by)');
  43.         $this->addSql('CREATE INDEX IDX_AD5F9BFC16FE72E1 ON survey (updated_by)');
  44.         $this->addSql('COMMENT ON COLUMN survey.id IS \'(DC2Type:uuid)\'');
  45.         $this->addSql('COMMENT ON COLUMN survey.type_id IS \'(DC2Type:uuid)\'');
  46.         $this->addSql('COMMENT ON COLUMN survey.status_id IS \'(DC2Type:uuid)\'');
  47.         $this->addSql('COMMENT ON COLUMN survey.created_by IS \'(DC2Type:uuid)\'');
  48.         $this->addSql('COMMENT ON COLUMN survey.updated_by IS \'(DC2Type:uuid)\'');
  49.         $this->addSql('CREATE TABLE survey_description_attachment (id UUID NOT NULL, survey_id UUID DEFAULT NULL, attachment_id UUID DEFAULT NULL, PRIMARY KEY(id))');
  50.         $this->addSql('CREATE INDEX IDX_31C3DA6CB3FE509D ON survey_description_attachment (survey_id)');
  51.         $this->addSql('CREATE INDEX IDX_31C3DA6C464E68B ON survey_description_attachment (attachment_id)');
  52.         $this->addSql('COMMENT ON COLUMN survey_description_attachment.id IS \'(DC2Type:uuid)\'');
  53.         $this->addSql('COMMENT ON COLUMN survey_description_attachment.survey_id IS \'(DC2Type:uuid)\'');
  54.         $this->addSql('COMMENT ON COLUMN survey_description_attachment.attachment_id IS \'(DC2Type:uuid)\'');
  55.         $this->addSql('CREATE TABLE survey_question (id UUID NOT NULL, type_id UUID DEFAULT NULL, survey_id UUID DEFAULT NULL, created_by UUID DEFAULT NULL, updated_by UUID DEFAULT NULL, title VARCHAR(2048) DEFAULT NULL, PRIMARY KEY(id))');
  56.         $this->addSql('CREATE INDEX IDX_EA000F69C54C8C93 ON survey_question (type_id)');
  57.         $this->addSql('CREATE INDEX IDX_EA000F69B3FE509D ON survey_question (survey_id)');
  58.         $this->addSql('CREATE INDEX IDX_EA000F69DE12AB56 ON survey_question (created_by)');
  59.         $this->addSql('CREATE INDEX IDX_EA000F6916FE72E1 ON survey_question (updated_by)');
  60.         $this->addSql('COMMENT ON COLUMN survey_question.id IS \'(DC2Type:uuid)\'');
  61.         $this->addSql('COMMENT ON COLUMN survey_question.type_id IS \'(DC2Type:uuid)\'');
  62.         $this->addSql('COMMENT ON COLUMN survey_question.survey_id IS \'(DC2Type:uuid)\'');
  63.         $this->addSql('COMMENT ON COLUMN survey_question.created_by IS \'(DC2Type:uuid)\'');
  64.         $this->addSql('COMMENT ON COLUMN survey_question.updated_by IS \'(DC2Type:uuid)\'');
  65.         $this->addSql('CREATE TABLE survey_question_answer (id UUID NOT NULL, question_id UUID DEFAULT NULL, created_by UUID DEFAULT NULL, updated_by UUID DEFAULT NULL, text TEXT NOT NULL, PRIMARY KEY(id))');
  66.         $this->addSql('CREATE INDEX IDX_7554B7191E27F6BF ON survey_question_answer (question_id)');
  67.         $this->addSql('CREATE INDEX IDX_7554B719DE12AB56 ON survey_question_answer (created_by)');
  68.         $this->addSql('CREATE INDEX IDX_7554B71916FE72E1 ON survey_question_answer (updated_by)');
  69.         $this->addSql('COMMENT ON COLUMN survey_question_answer.id IS \'(DC2Type:uuid)\'');
  70.         $this->addSql('COMMENT ON COLUMN survey_question_answer.question_id IS \'(DC2Type:uuid)\'');
  71.         $this->addSql('COMMENT ON COLUMN survey_question_answer.created_by IS \'(DC2Type:uuid)\'');
  72.         $this->addSql('COMMENT ON COLUMN survey_question_answer.updated_by IS \'(DC2Type:uuid)\'');
  73.         $this->addSql('CREATE TABLE survey_question_answer_survey_question_choice (survey_question_answer_id UUID NOT NULL, survey_question_choice_id UUID NOT NULL, PRIMARY KEY(survey_question_answer_id, survey_question_choice_id))');
  74.         $this->addSql('CREATE INDEX IDX_1E432ECCB234F028 ON survey_question_answer_survey_question_choice (survey_question_answer_id)');
  75.         $this->addSql('CREATE INDEX IDX_1E432ECC8181DEFE ON survey_question_answer_survey_question_choice (survey_question_choice_id)');
  76.         $this->addSql('COMMENT ON COLUMN survey_question_answer_survey_question_choice.survey_question_answer_id IS \'(DC2Type:uuid)\'');
  77.         $this->addSql('COMMENT ON COLUMN survey_question_answer_survey_question_choice.survey_question_choice_id IS \'(DC2Type:uuid)\'');
  78.         $this->addSql('CREATE TABLE survey_question_choice (id UUID NOT NULL, survey_question_id UUID DEFAULT NULL, created_by UUID DEFAULT NULL, updated_by UUID DEFAULT NULL, title VARCHAR(2048) DEFAULT NULL, PRIMARY KEY(id))');
  79.         $this->addSql('CREATE INDEX IDX_6E22A7AEA6DF29BA ON survey_question_choice (survey_question_id)');
  80.         $this->addSql('CREATE INDEX IDX_6E22A7AEDE12AB56 ON survey_question_choice (created_by)');
  81.         $this->addSql('CREATE INDEX IDX_6E22A7AE16FE72E1 ON survey_question_choice (updated_by)');
  82.         $this->addSql('COMMENT ON COLUMN survey_question_choice.id IS \'(DC2Type:uuid)\'');
  83.         $this->addSql('COMMENT ON COLUMN survey_question_choice.survey_question_id IS \'(DC2Type:uuid)\'');
  84.         $this->addSql('COMMENT ON COLUMN survey_question_choice.created_by IS \'(DC2Type:uuid)\'');
  85.         $this->addSql('COMMENT ON COLUMN survey_question_choice.updated_by IS \'(DC2Type:uuid)\'');
  86.         $this->addSql('ALTER TABLE api_dict_survey_question_type ADD CONSTRAINT FK_2184A5C3DE12AB56 FOREIGN KEY (created_by) REFERENCES "user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  87.         $this->addSql('ALTER TABLE api_dict_survey_question_type ADD CONSTRAINT FK_2184A5C316FE72E1 FOREIGN KEY (updated_by) REFERENCES "user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  88.         $this->addSql('ALTER TABLE api_dict_survey_status ADD CONSTRAINT FK_500C9C42DE12AB56 FOREIGN KEY (created_by) REFERENCES "user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  89.         $this->addSql('ALTER TABLE api_dict_survey_status ADD CONSTRAINT FK_500C9C4216FE72E1 FOREIGN KEY (updated_by) REFERENCES "user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  90.         $this->addSql('ALTER TABLE api_dict_survey_type ADD CONSTRAINT FK_92B7E21EDE12AB56 FOREIGN KEY (created_by) REFERENCES "user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  91.         $this->addSql('ALTER TABLE api_dict_survey_type ADD CONSTRAINT FK_92B7E21E16FE72E1 FOREIGN KEY (updated_by) REFERENCES "user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  92.         $this->addSql('ALTER TABLE survey ADD CONSTRAINT FK_AD5F9BFCC54C8C93 FOREIGN KEY (type_id) REFERENCES api_dict_survey_type (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  93.         $this->addSql('ALTER TABLE survey ADD CONSTRAINT FK_AD5F9BFC6BF700BD FOREIGN KEY (status_id) REFERENCES api_dict_survey_status (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  94.         $this->addSql('ALTER TABLE survey ADD CONSTRAINT FK_AD5F9BFCDE12AB56 FOREIGN KEY (created_by) REFERENCES "user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  95.         $this->addSql('ALTER TABLE survey ADD CONSTRAINT FK_AD5F9BFC16FE72E1 FOREIGN KEY (updated_by) REFERENCES "user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  96.         $this->addSql('ALTER TABLE survey_description_attachment ADD CONSTRAINT FK_31C3DA6CB3FE509D FOREIGN KEY (survey_id) REFERENCES survey (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  97.         $this->addSql('ALTER TABLE survey_description_attachment ADD CONSTRAINT FK_31C3DA6C464E68B FOREIGN KEY (attachment_id) REFERENCES attachment (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  98.         $this->addSql('ALTER TABLE survey_question ADD CONSTRAINT FK_EA000F69C54C8C93 FOREIGN KEY (type_id) REFERENCES api_dict_survey_question_type (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  99.         $this->addSql('ALTER TABLE survey_question ADD CONSTRAINT FK_EA000F69B3FE509D FOREIGN KEY (survey_id) REFERENCES survey (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  100.         $this->addSql('ALTER TABLE survey_question ADD CONSTRAINT FK_EA000F69DE12AB56 FOREIGN KEY (created_by) REFERENCES "user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  101.         $this->addSql('ALTER TABLE survey_question ADD CONSTRAINT FK_EA000F6916FE72E1 FOREIGN KEY (updated_by) REFERENCES "user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  102.         $this->addSql('ALTER TABLE survey_question_answer ADD CONSTRAINT FK_7554B7191E27F6BF FOREIGN KEY (question_id) REFERENCES survey_question (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  103.         $this->addSql('ALTER TABLE survey_question_answer ADD CONSTRAINT FK_7554B719DE12AB56 FOREIGN KEY (created_by) REFERENCES "user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  104.         $this->addSql('ALTER TABLE survey_question_answer ADD CONSTRAINT FK_7554B71916FE72E1 FOREIGN KEY (updated_by) REFERENCES "user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  105.         $this->addSql('ALTER TABLE survey_question_answer_survey_question_choice ADD CONSTRAINT FK_1E432ECCB234F028 FOREIGN KEY (survey_question_answer_id) REFERENCES survey_question_answer (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE');
  106.         $this->addSql('ALTER TABLE survey_question_answer_survey_question_choice ADD CONSTRAINT FK_1E432ECC8181DEFE FOREIGN KEY (survey_question_choice_id) REFERENCES survey_question_choice (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE');
  107.         $this->addSql('ALTER TABLE survey_question_choice ADD CONSTRAINT FK_6E22A7AEA6DF29BA FOREIGN KEY (survey_question_id) REFERENCES survey_question (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  108.         $this->addSql('ALTER TABLE survey_question_choice ADD CONSTRAINT FK_6E22A7AEDE12AB56 FOREIGN KEY (created_by) REFERENCES "user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  109.         $this->addSql('ALTER TABLE survey_question_choice ADD CONSTRAINT FK_6E22A7AE16FE72E1 FOREIGN KEY (updated_by) REFERENCES "user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  110.     }
  111.     public function down(Schema $schema): void
  112.     {
  113.         // this down() migration is auto-generated, please modify it to your needs
  114.         $this->addSql('CREATE SCHEMA public');
  115.         $this->addSql('ALTER TABLE api_dict_survey_question_type DROP CONSTRAINT FK_2184A5C3DE12AB56');
  116.         $this->addSql('ALTER TABLE api_dict_survey_question_type DROP CONSTRAINT FK_2184A5C316FE72E1');
  117.         $this->addSql('ALTER TABLE api_dict_survey_status DROP CONSTRAINT FK_500C9C42DE12AB56');
  118.         $this->addSql('ALTER TABLE api_dict_survey_status DROP CONSTRAINT FK_500C9C4216FE72E1');
  119.         $this->addSql('ALTER TABLE api_dict_survey_type DROP CONSTRAINT FK_92B7E21EDE12AB56');
  120.         $this->addSql('ALTER TABLE api_dict_survey_type DROP CONSTRAINT FK_92B7E21E16FE72E1');
  121.         $this->addSql('ALTER TABLE survey DROP CONSTRAINT FK_AD5F9BFCC54C8C93');
  122.         $this->addSql('ALTER TABLE survey DROP CONSTRAINT FK_AD5F9BFC6BF700BD');
  123.         $this->addSql('ALTER TABLE survey DROP CONSTRAINT FK_AD5F9BFCDE12AB56');
  124.         $this->addSql('ALTER TABLE survey DROP CONSTRAINT FK_AD5F9BFC16FE72E1');
  125.         $this->addSql('ALTER TABLE survey_description_attachment DROP CONSTRAINT FK_31C3DA6CB3FE509D');
  126.         $this->addSql('ALTER TABLE survey_description_attachment DROP CONSTRAINT FK_31C3DA6C464E68B');
  127.         $this->addSql('ALTER TABLE survey_question DROP CONSTRAINT FK_EA000F69C54C8C93');
  128.         $this->addSql('ALTER TABLE survey_question DROP CONSTRAINT FK_EA000F69B3FE509D');
  129.         $this->addSql('ALTER TABLE survey_question DROP CONSTRAINT FK_EA000F69DE12AB56');
  130.         $this->addSql('ALTER TABLE survey_question DROP CONSTRAINT FK_EA000F6916FE72E1');
  131.         $this->addSql('ALTER TABLE survey_question_answer DROP CONSTRAINT FK_7554B7191E27F6BF');
  132.         $this->addSql('ALTER TABLE survey_question_answer DROP CONSTRAINT FK_7554B719DE12AB56');
  133.         $this->addSql('ALTER TABLE survey_question_answer DROP CONSTRAINT FK_7554B71916FE72E1');
  134.         $this->addSql('ALTER TABLE survey_question_answer_survey_question_choice DROP CONSTRAINT FK_1E432ECCB234F028');
  135.         $this->addSql('ALTER TABLE survey_question_answer_survey_question_choice DROP CONSTRAINT FK_1E432ECC8181DEFE');
  136.         $this->addSql('ALTER TABLE survey_question_choice DROP CONSTRAINT FK_6E22A7AEA6DF29BA');
  137.         $this->addSql('ALTER TABLE survey_question_choice DROP CONSTRAINT FK_6E22A7AEDE12AB56');
  138.         $this->addSql('ALTER TABLE survey_question_choice DROP CONSTRAINT FK_6E22A7AE16FE72E1');
  139.         $this->addSql('DROP TABLE api_dict_survey_question_type');
  140.         $this->addSql('DROP TABLE api_dict_survey_status');
  141.         $this->addSql('DROP TABLE api_dict_survey_type');
  142.         $this->addSql('DROP TABLE survey');
  143.         $this->addSql('DROP TABLE survey_description_attachment');
  144.         $this->addSql('DROP TABLE survey_question');
  145.         $this->addSql('DROP TABLE survey_question_answer');
  146.         $this->addSql('DROP TABLE survey_question_answer_survey_question_choice');
  147.         $this->addSql('DROP TABLE survey_question_choice');
  148.     }
  149. }