migrations/Version20240111170500.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 Version20240111170500 extends AbstractMigration
  8. {
  9.     public function getDescription(): string
  10.     {
  11.         return 'Add assigned employee to member application.';
  12.     }
  13.     public function up(Schema $schema): void
  14.     {
  15.         $this->skipIf(
  16.             true === $schema->getTable('member_application')->hasColumn('assigned_employee_id'),
  17.             'The assigned_employee_id column was already added to assigned_employee_id table!'
  18.         );
  19.         $memberApplicationTable $schema->getTable('member_application');
  20.         $memberApplicationTable->addColumn('assigned_employee_id'Types::STRING, ['length' => 255])->setNotnull(false);
  21.         $memberApplicationTable->addIndex(['assigned_employee_id'], 'idx_member_application_assigned_employee_id');
  22.         $memberApplicationTable->addForeignKeyConstraint(
  23.             $schema->getTable('employee'),
  24.             ['assigned_employee_id'],
  25.             ['id'],
  26.             [],
  27.             'fk_member_application_employee'
  28.         );
  29.     }
  30.     public function down(Schema $schema): void
  31.     {
  32.         $this->skipIf(
  33.             false === $schema->getTable('member_application')->hasColumn('assigned_employee_id'),
  34.             'The assigned_employee_id column was already removed to member_application table!'
  35.         );
  36.         $memberApplicationTable $schema->getTable('member_application');
  37.         $memberApplicationTable->dropIndex('idx_member_application_assigned_employee_id');
  38.         $memberApplicationTable->dropColumn('assigned_employee_id');
  39.     }
  40. }