<?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 Version20230411053213 extends AbstractMigration
{
public function getDescription(): string
{
return '';
}
public function up(Schema $schema): void
{
//MANUFACTURER ADDRESS
$this->addSql("CREATE PROCEDURE ProcessManufacturerAddresses()
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE manufacturerAddressId INT;
DECLARE line1 TEXT;
DECLARE addressCity VARCHAR(255);
DECLARE addressZip VARCHAR(40);
DECLARE addressCountry VARCHAR(10);
DECLARE details VARCHAR(255);
DECLARE addressType VARCHAR(255);
DECLARE newUuid CHAR(36);
DECLARE newAddressId INT;
DECLARE updatedAddressType VARCHAR(40);
DECLARE cur CURSOR FOR
SELECT
id,
address_old as line1,
city as addressCity,
zip as addressZip,
COALESCE(country, 'Unknown') as addressCountry,
district as details,
type as addressType,
UUID() AS new_uuid
FROM manufacturer_address;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
OPEN cur;
read_loop: LOOP
FETCH cur INTO manufacturerAddressId, line1, addressCity, addressZip, addressCountry, details, addressType, newUuid;
IF done THEN
LEAVE read_loop;
END IF;
-- Convert manufacturer address type to address type
CASE addressType
WHEN 'manufacturing' THEN
SET updatedAddressType = 'address_type.manufacturing';
WHEN 'office' THEN
SET updatedAddressType = 'address_type.legal';
WHEN 'warehouse' THEN
SET updatedAddressType = 'address_type.warehouse';
ELSE
SET updatedAddressType = NULL;
END CASE;
INSERT INTO address (line1, city, zip, country, details, type, uuid)
VALUES (
line1,
addressCity,
addressZip,
addressCountry,
details,
updatedAddressType,
newUuid
);
SET newAddressId = LAST_INSERT_ID();
UPDATE manufacturer_address
SET address_id = newAddressId
WHERE id = manufacturerAddressId;
END LOOP;
CLOSE cur;
END;");
$this->addSql("CALL ProcessManufacturerAddresses();");
$this->addSql("DROP PROCEDURE ProcessManufacturerAddresses");
}
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
}
}