migrations/Version2025040810000.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\DBAL\Types\Types;
  6. use Doctrine\Migrations\AbstractMigration;
  7. final class Version2025040810000 extends AbstractMigration
  8. {
  9.     public function getDescription(): string
  10.     {
  11.         return 'Add description, gedModelName, gedCategory, isOutgoing, isDeleted  to document_type table';
  12.     }
  13.     public function up(Schema $schema): void
  14.     {
  15.         $this->skipIf($schema->getTable('document_type')->hasColumn('ged_model_name'), 'Table document_type already have ged_model_name column');
  16.         $documentTypeTable $schema->getTable('document_type');
  17.         $documentTypeTable->addColumn('ged_category'Types::STRING)->setNotnull(false)->setDefault(null);
  18.         $documentTypeTable->addColumn('ged_model_name'Types::STRING)->setNotnull(false)->setDefault(null);
  19.         $documentTypeTable->addColumn('description'Types::TEXT)->setNotnull(false)->setDefault(null);
  20.         $documentTypeTable->addColumn('is_deleted'Types::BOOLEAN)->setNotnull(true)->setDefault(false);
  21.         $documentTypeTable->addColumn('is_outgoing'Types::BOOLEAN)->setNotnull(true)->setDefault(true);
  22.     }
  23.     public function postUp(Schema $schema): void
  24.     {
  25.         $this->connection->executeStatement('UPDATE document_type SET ged_model_name = vendor_meta_tag WHERE ged_model_name IS NULL');
  26.     }
  27.     public function down(Schema $schema): void
  28.     {
  29.         $this->skipIf(
  30.             false === $schema->getTable('document_type')->hasColumn('ged_model_name'),
  31.             'The ged_model_name is already removed from the document_type table!'
  32.         );
  33.         $documentTypeTable $schema->getTable('document_type');
  34.         $documentTypeTable->dropColumn('description');
  35.         $documentTypeTable->dropColumn('ged_model_name');
  36.         $documentTypeTable->dropColumn('ged_category');
  37.         $documentTypeTable->dropColumn('is_outgoing');
  38.         $documentTypeTable->dropColumn('is_deleted');
  39.     }
  40. }