<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
/**
* Auto-generated Migration: Please modify to your needs!
*/
final class Version20220411225956 extends AbstractMigration
{
public function getDescription(): string
{
return 'TeamInfo';
}
public function up(Schema $schema): void
{
// this up() migration is auto-generated, please modify it to your needs
$this->connection->executeQuery('ALTER TABLE equipe_information ADD team_id INT NOT NULL, ADD league_id INT NOT NULL');
// Id Team
$lastId = 0;
while (true) {
$infos = $this->connection->fetchAllAssociative("SELECT idinformation, idequipe_equipe_information, idligue_equipe_information FROM equipe_information WHERE idinformation > {$lastId} LIMIT 1000");
if (empty($infos)) {
break;
}
foreach ($infos as $info) {
$infoId = $lastId = $info['idinformation'];
$teamServiceId = $info['idequipe_equipe_information'];
$leagueServiceId = $info['idligue_equipe_information'];
$team = $this->connection->fetchAssociative("SELECT idequipe FROM equipe WHERE idequipeservice_equipe = {$teamServiceId}");
$league = $this->connection->fetchAssociative("SELECT idligue FROM ligue WHERE idligueservice_ligue = {$leagueServiceId} AND (lang_ligue IS NULL OR lang_ligue = '')");
if ($team && $league) {
$teamId = $team['idequipe'];
$leagueId = $league['idligue'];
$this->connection->executeQuery("UPDATE equipe_information SET team_id = {$teamId}, league_id = {$leagueId} WHERE idinformation = {$infoId}");
} else {
echo "DELETE Info.id {$infoId} : Team.serviceId {$teamServiceId} or League.serviceId {$leagueServiceId} not found\n";
$this->connection->executeQuery("DELETE FROM equipe_information WHERE idinformation = {$infoId}");
}
}
}
$this->addSql('ALTER TABLE equipe_information ADD CONSTRAINT FK_E3E9E953296CD8AE FOREIGN KEY (team_id) REFERENCES equipe (idequipe)');
$this->addSql('ALTER TABLE equipe_information ADD CONSTRAINT FK_E3E9E95358AFC4DE FOREIGN KEY (league_id) REFERENCES ligue (idligue)');
$this->addSql('ALTER TABLE equipe_information ADD CONSTRAINT FK_E3E9E953382FD7AB FOREIGN KEY (idsaison_equipe_information) REFERENCES saison (idsaison)');
$this->addSql('CREATE INDEX IDX_E3E9E953296CD8AE ON equipe_information (team_id)');
$this->addSql('CREATE INDEX IDX_E3E9E95358AFC4DE ON equipe_information (league_id)');
}
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
$this->addSql('ALTER TABLE equipe_information DROP FOREIGN KEY FK_E3E9E953296CD8AE');
$this->addSql('ALTER TABLE equipe_information DROP FOREIGN KEY FK_E3E9E95358AFC4DE');
$this->addSql('ALTER TABLE equipe_information DROP FOREIGN KEY FK_E3E9E953382FD7AB');
$this->addSql('DROP INDEX IDX_E3E9E953296CD8AE ON equipe_information');
$this->addSql('DROP INDEX IDX_E3E9E95358AFC4DE ON equipe_information');
$this->addSql('ALTER TABLE equipe_information DROP team_id, DROP league_id');
}
}