vendor/bluue/projects-bundle/migrations/Version20240422074343.php line 1

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace ProjectsBundleMigrations;
  4. use Doctrine\DBAL\Schema\Schema;
  5. use Doctrine\Migrations\AbstractMigration;
  6. final class Version20240422074343 extends AbstractMigration
  7. {
  8.     private array $links = [];
  9.     public function preUp(Schema $schema): void
  10.     {
  11.         $this->links $this->connection->executeQuery(
  12.             'SELECT id, drive_link FROM projects_bundle__project'
  13.         )->fetchAllAssociative();
  14.     }
  15.     public function up(Schema $schema): void
  16.     {
  17.         $this->addSql('ALTER TABLE projects_bundle__project ADD links JSON DEFAULT NULL, DROP drive_link');
  18.     }
  19.     public function down(Schema $schema): void
  20.     {
  21.         $this->addSql('ALTER TABLE projects_bundle__project ADD drive_link VARCHAR(255) DEFAULT NULL, DROP links');
  22.     }
  23.     public function postUp(Schema $schema): void
  24.     {
  25.         parent::postUp($schema);
  26.         $conn $this->connection;
  27.         foreach ($this->links as $link) {
  28.             $conn->executeStatement(
  29.                 'UPDATE projects_bundle__project SET links = :links WHERE id = :id',
  30.                 [
  31.                     'links' => json_encode([['type' => 'drive''link' => $link['drive_link']]]),
  32.                     'id' => $link['id']
  33.                 ]
  34.             );
  35.         }
  36.     }
  37. }