migrations/Version20260220210804.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 Version20260220210804 extends AbstractMigration
  7. {
  8.     public function getDescription(): string
  9.     {
  10.         return 'Filling customers info on orders table';
  11.     }
  12.     public function up(Schema $schema): void
  13.     {
  14.         // setting customer_name
  15.         $this->addSql("
  16.             UPDATE
  17.                 `order` o
  18.             INNER JOIN `user` u ON
  19.                 o.customer_id = u.id
  20.             SET
  21.                 o.customer_name = CONCAT(u.first_name, ' ', u.last_name)
  22.             WHERE
  23.                 o.created_by_guest = 0
  24.         ");
  25.         // setting customer_phone
  26.         $this->addSql("
  27.             UPDATE
  28.                 `order` o
  29.             INNER JOIN `user` u ON
  30.                 o.customer_id = u.id
  31.             SET
  32.                 o.customer_phone = u.phone
  33.             WHERE
  34.                 o.created_by_guest = 0
  35.         ");
  36.         // setting customer_email and managing cases deleted users
  37.         $this->addSql("
  38.             UPDATE `order` o
  39.             INNER JOIN `user` u ON o.customer_id = u.id
  40.             SET o.customer_email = CASE
  41.                 WHEN u.email LIKE 'deleted-%' THEN
  42.                     NULLIF(
  43.                         SUBSTRING(
  44.                             u.email,
  45.                             LOCATE('-', u.email, LOCATE('-', u.email) + 1) + 1
  46.                         ),
  47.                         ''
  48.                     )
  49.                 ELSE u.email
  50.             END
  51.             WHERE o.created_by_guest = 0
  52.             AND (o.customer_email IS NULL OR o.customer_email = '');
  53.         ");
  54.     }
  55. }