migrations/Version20240806150700.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 Version20240806150700 extends AbstractMigration
  8. {
  9.     public function getDescription(): string
  10.     {
  11.         return 'Add new data to member applications';
  12.     }
  13.     public function up(Schema $schema): void
  14.     {
  15.         $this->skipIf(
  16.             true === $schema->getTable('member_application')->hasColumn('payment_method'),
  17.             'The payment_method field already exists in the member_application table!'
  18.         );
  19.         $memberApplicationTable $schema->getTable('member_application');
  20.         $memberApplicationTable->addColumn('payment_method'Types::STRING)->setNotnull(true)->setDefault('VP');
  21.         $memberApplicationTable->addColumn('age_range'Types::STRING)->setNotnull(false)->setDefault(null);
  22.         $memberApplicationTable->addColumn('free_coverage_years'Types::JSON)->setNotnull(false)->setDefault(null);
  23.         $memberApplicationTable->addColumn('coverage_delays'Types::JSON)->setNotnull(false)->setDefault(null);
  24.         $memberApplicationOriginalDataTable $schema->getTable('member_application_original_data');
  25.         $memberApplicationOriginalDataTable->addColumn('payment_method'Types::STRING)->setNotnull(true)->setDefault('VP');
  26.     }
  27.     public function down(Schema $schema): void
  28.     {
  29.         $this->skipIf(
  30.             false === $schema->getTable('member_application')->hasColumn('payment_method'),
  31.             'The payment_method is already removed from the member_application table!'
  32.         );
  33.         $memberApplicationTable $schema->getTable('member_application');
  34.         $memberApplicationTable->dropColumn('payment_method');
  35.         $memberApplicationTable->dropColumn('age_range');
  36.         $memberApplicationTable->dropColumn('free_coverage_years');
  37.         $memberApplicationTable->dropColumn('coverage_delays');
  38.         $memberApplicationOriginalDataTable $schema->getTable('member_application_original_data');
  39.         $memberApplicationOriginalDataTable->dropColumn('payment_method');
  40.     }
  41. }