migrations/Version20250114173016.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. final class Version20250114173016 extends AbstractMigration
  7. {
  8.     public function getDescription(): string
  9.     {
  10.         return 'Create Parcel entity and its relation with Application';
  11.     }
  12.     public function up(Schema $schema): void
  13.     {
  14.         $this->addSql('CREATE TABLE application_parcel (application_id UUID NOT NULL, parcel_id UUID NOT NULL, PRIMARY KEY(application_id, parcel_id))');
  15.         $this->addSql('CREATE INDEX IDX_79A851A53E030ACD ON application_parcel (application_id)');
  16.         $this->addSql('CREATE INDEX IDX_79A851A5465E670C ON application_parcel (parcel_id)');
  17.         $this->addSql('COMMENT ON COLUMN application_parcel.application_id IS \'(DC2Type:uuid)\'');
  18.         $this->addSql('COMMENT ON COLUMN application_parcel.parcel_id IS \'(DC2Type:uuid)\'');
  19.         $this->addSql('CREATE TABLE parcel (id UUID NOT NULL, created_by UUID DEFAULT NULL, updated_by UUID DEFAULT NULL, precinct VARCHAR(255) DEFAULT NULL, map_sheet VARCHAR(255) DEFAULT NULL, registration_number VARCHAR(255) DEFAULT NULL, created_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, updated_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, deleted_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, PRIMARY KEY(id))');
  20.         $this->addSql('CREATE INDEX IDX_C99B5D60DE12AB56 ON parcel (created_by)');
  21.         $this->addSql('CREATE INDEX IDX_C99B5D6016FE72E1 ON parcel (updated_by)');
  22.         $this->addSql('COMMENT ON COLUMN parcel.id IS \'(DC2Type:uuid)\'');
  23.         $this->addSql('COMMENT ON COLUMN parcel.created_by IS \'(DC2Type:uuid)\'');
  24.         $this->addSql('COMMENT ON COLUMN parcel.updated_by IS \'(DC2Type:uuid)\'');
  25.         $this->addSql('ALTER TABLE application_parcel ADD CONSTRAINT FK_79A851A53E030ACD FOREIGN KEY (application_id) REFERENCES application (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE');
  26.         $this->addSql('ALTER TABLE application_parcel ADD CONSTRAINT FK_79A851A5465E670C FOREIGN KEY (parcel_id) REFERENCES parcel (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE');
  27.         $this->addSql('ALTER TABLE parcel ADD CONSTRAINT FK_C99B5D60DE12AB56 FOREIGN KEY (created_by) REFERENCES "user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  28.         $this->addSql('ALTER TABLE parcel ADD CONSTRAINT FK_C99B5D6016FE72E1 FOREIGN KEY (updated_by) REFERENCES "user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
  29.     }
  30.     public function down(Schema $schema): void
  31.     {
  32.         $this->addSql('CREATE SCHEMA public');
  33.         $this->addSql('ALTER TABLE application_parcel DROP CONSTRAINT FK_79A851A53E030ACD');
  34.         $this->addSql('ALTER TABLE application_parcel DROP CONSTRAINT FK_79A851A5465E670C');
  35.         $this->addSql('ALTER TABLE parcel DROP CONSTRAINT FK_C99B5D60DE12AB56');
  36.         $this->addSql('ALTER TABLE parcel DROP CONSTRAINT FK_C99B5D6016FE72E1');
  37.         $this->addSql('DROP TABLE application_parcel');
  38.         $this->addSql('DROP TABLE parcel');
  39.     }
  40. }