migrations/Version20230127153600.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 Version20230127153600 extends AbstractMigration
  8. {
  9.     public function getDescription(): string
  10.     {
  11.         return 'Add affiliate_number to ticket';
  12.     }
  13.     public function up(Schema $schema): void
  14.     {
  15.         $this->skipIf(
  16.             true === $schema->getTable('ticket')->hasColumn('affiliate_number'),
  17.             'The affiliate_number field already exists in the ticket table!'
  18.         );
  19.         $table $schema->getTable('ticket');
  20.         $table
  21.             ->addColumn('my_cmcm_user_id'Types::STRING)
  22.             ->setNotnull(false);
  23.         $table
  24.             ->addColumn('affiliate_number'Types::STRING, ['length' => 255])
  25.             ->setNotnull(false);
  26.         $table
  27.             ->addColumn('device_id'Types::STRING, ['length' => 255])
  28.             ->setNotnull(false);
  29.         $table->addIndex(['my_cmcm_user_id'], 'idx_ticket_my_cmcm_user_id');
  30.         $table->addIndex(['affiliate_number'], 'idx_ticket_affiliate_number');
  31.         $table->addIndex(['device_id'], 'idx_ticket_device_id');
  32.         $table
  33.             ->addForeignKeyConstraint(
  34.                 'mycmcm_user',
  35.                 ['my_cmcm_user_id'],
  36.                 ['id'],
  37.                 [],
  38.                 'fk_mycmcm_user_ticket'
  39.             );
  40.     }
  41.     public function down(Schema $schema): void
  42.     {
  43.         $this->skipIf(
  44.             false === $schema->getTable('ticket')->hasColumn('affiliate_number'),
  45.             'The affiliate_number is already removed from the ticket table!'
  46.         );
  47.         $schema->getTable('ticket')
  48.             ->dropColumn('affiliate_number')
  49.             ->dropColumn('device_id')
  50.             ->dropColumn('my_cmcm_user');
  51.     }
  52. }