migrations/Version20220404231854.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. /**
  7.  * Auto-generated Migration: Please modify to your needs!
  8.  */
  9. final class Version20220404231854 extends AbstractMigration
  10. {
  11.     public function getDescription(): string
  12.     {
  13.         return 'Fill Player.university + SET Player.university = NULL WHERE Player.university = 0';
  14.     }
  15.     public function up(Schema $schema): void
  16.     {
  17.         // this up() migration is auto-generated, please modify it to your needs
  18.         $universities $this->connection->fetchAllAssociative('SELECT iduniversite FROM universite');
  19.         $universitiesIds array_column($universities'iduniversite');
  20.         $this->connection->executeQuery('UPDATE joueur SET iduniversite_joueur = NULL WHERE iduniversite_joueur = 0');
  21.         $lastId 0;
  22.         while (true) {
  23.             $players $this->connection->fetchAllAssociative("SELECT idjoueur, iduniversite_joueur FROM joueur WHERE idjoueur > {$lastId} ORDER BY idjoueur ASC LIMIT 1000");
  24.             if (empty($players)) {
  25.                 break;
  26.             }
  27.             foreach ($players as $player) {
  28.                 $playerId $lastId $player['idjoueur'];
  29.                 if (null !== $player['iduniversite_joueur'] && !\in_array($player['iduniversite_joueur'], $universitiesIds)) {
  30.                     $this->connection->executeQuery("UPDATE joueur SET iduniversite_joueur = NULL WHERE idjoueur = {$playerId}");
  31.                 }
  32.             }
  33.         }
  34.         $this->addSql('ALTER TABLE joueur ADD CONSTRAINT FK_FD71A9C51169E224 FOREIGN KEY (iduniversite_joueur) REFERENCES universite (iduniversite) ON DELETE SET NULL');
  35.         $this->addSql('CREATE INDEX IDX_FD71A9C51169E224 ON joueur (iduniversite_joueur)');
  36.     }
  37.     public function down(Schema $schema): void
  38.     {
  39.         // this down() migration is auto-generated, please modify it to your needs
  40.         $this->addSql('ALTER TABLE joueur DROP FOREIGN KEY FK_FD71A9C51169E224');
  41.         $this->addSql('DROP INDEX IDX_FD71A9C51169E224 ON joueur');
  42.     }
  43. }