migrations/Version20220411225956.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 Version20220411225956 extends AbstractMigration
  10. {
  11.     public function getDescription(): string
  12.     {
  13.         return 'TeamInfo';
  14.     }
  15.     public function up(Schema $schema): void
  16.     {
  17.         // this up() migration is auto-generated, please modify it to your needs
  18.         $this->connection->executeQuery('ALTER TABLE equipe_information ADD team_id INT NOT NULL, ADD league_id INT NOT NULL');
  19.         // Id Team
  20.         $lastId 0;
  21.         while (true) {
  22.             $infos $this->connection->fetchAllAssociative("SELECT idinformation, idequipe_equipe_information, idligue_equipe_information FROM equipe_information WHERE idinformation > {$lastId} LIMIT 1000");
  23.             if (empty($infos)) {
  24.                 break;
  25.             }
  26.             foreach ($infos as $info) {
  27.                 $infoId $lastId $info['idinformation'];
  28.                 $teamServiceId $info['idequipe_equipe_information'];
  29.                 $leagueServiceId $info['idligue_equipe_information'];
  30.                 $team $this->connection->fetchAssociative("SELECT idequipe FROM equipe WHERE idequipeservice_equipe = {$teamServiceId}");
  31.                 $league $this->connection->fetchAssociative("SELECT idligue FROM ligue WHERE idligueservice_ligue = {$leagueServiceId} AND (lang_ligue IS NULL OR lang_ligue = '')");
  32.                 if ($team && $league) {
  33.                     $teamId $team['idequipe'];
  34.                     $leagueId $league['idligue'];
  35.                     $this->connection->executeQuery("UPDATE equipe_information SET team_id = {$teamId}, league_id = {$leagueId} WHERE idinformation = {$infoId}");
  36.                 } else {
  37.                     echo "DELETE Info.id {$infoId} : Team.serviceId {$teamServiceId} or League.serviceId {$leagueServiceId} not found\n";
  38.                     $this->connection->executeQuery("DELETE FROM equipe_information WHERE idinformation = {$infoId}");
  39.                 }
  40.             }
  41.         }
  42.         $this->addSql('ALTER TABLE equipe_information ADD CONSTRAINT FK_E3E9E953296CD8AE FOREIGN KEY (team_id) REFERENCES equipe (idequipe)');
  43.         $this->addSql('ALTER TABLE equipe_information ADD CONSTRAINT FK_E3E9E95358AFC4DE FOREIGN KEY (league_id) REFERENCES ligue (idligue)');
  44.         $this->addSql('ALTER TABLE equipe_information ADD CONSTRAINT FK_E3E9E953382FD7AB FOREIGN KEY (idsaison_equipe_information) REFERENCES saison (idsaison)');
  45.         $this->addSql('CREATE INDEX IDX_E3E9E953296CD8AE ON equipe_information (team_id)');
  46.         $this->addSql('CREATE INDEX IDX_E3E9E95358AFC4DE ON equipe_information (league_id)');
  47.     }
  48.     public function down(Schema $schema): void
  49.     {
  50.         // this down() migration is auto-generated, please modify it to your needs
  51.         $this->addSql('ALTER TABLE equipe_information DROP FOREIGN KEY FK_E3E9E953296CD8AE');
  52.         $this->addSql('ALTER TABLE equipe_information DROP FOREIGN KEY FK_E3E9E95358AFC4DE');
  53.         $this->addSql('ALTER TABLE equipe_information DROP FOREIGN KEY FK_E3E9E953382FD7AB');
  54.         $this->addSql('DROP INDEX IDX_E3E9E953296CD8AE ON equipe_information');
  55.         $this->addSql('DROP INDEX IDX_E3E9E95358AFC4DE ON equipe_information');
  56.         $this->addSql('ALTER TABLE equipe_information DROP team_id, DROP league_id');
  57.     }
  58. }