<?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 Version20230516073743 extends AbstractMigration
{
public function getDescription(): string
{
return '';
}
public function up(Schema $schema): void
{
// this up() migration is auto-generated, please modify it to your needs
$this->addSql('ALTER TABLE address ADD company_id INT DEFAULT NULL');
$this->addSql('ALTER TABLE address ADD CONSTRAINT FK_D4E6F81979B1AD6 FOREIGN KEY (company_id) REFERENCES company (id)');
$this->addSql('CREATE INDEX IDX_D4E6F81979B1AD6 ON address (company_id)');
// quotation addresses
$this->addSql("
UPDATE address a
JOIN customer_quotations q ON a.id = q.address_id
JOIN customer c ON q.customer_id = c.id
SET a.company_id = c.company_id
");
// manufacturer addresses
$this->addSql("
UPDATE address a
JOIN manufacturer_address ma ON a.id = ma.address_id
JOIN manufacturer m ON ma.manufacturer_id = m.id
SET a.company_id = m.company_id
");
// manufacturer inquiries addresses
$this->addSql("
UPDATE address a
JOIN price_inquiry pi ON a.id = pi.address_id
JOIN manufacturer m ON pi.manufacturer_id = m.id
SET a.company_id = m.company_id
");
// invoice addresses
$this->addSql("
UPDATE address a
JOIN invoice i ON a.id = i.delivery_address_id
JOIN customer c ON i.customer_id = c.id
SET a.company_id = c.company_id
");
// sample addresses
$this->addSql("
UPDATE address a
JOIN sample s ON a.id = s.outbound_address_id
JOIN customer c ON s.customer_id = c.id
SET a.company_id = c.company_id
");
// company addresses
$this->addSql("
UPDATE address a
JOIN company co ON a.id = co.address_id
SET a.company_id = co.id
");
}
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
$this->addSql('ALTER TABLE address DROP FOREIGN KEY FK_D4E6F81979B1AD6');
$this->addSql('DROP INDEX IDX_D4E6F81979B1AD6 ON address');
$this->addSql('ALTER TABLE address DROP company_id');
}
}