diff --git a/migrations/000.172.sql b/migrations/000.172.sql new file mode 100644 index 0000000..816c625 --- /dev/null +++ b/migrations/000.172.sql @@ -0,0 +1,52 @@ +-- P5-4876 migrate order billing address + +BEGIN; + + INSERT INTO "order-fields" (name) VALUES ('billing_address_id'); + + -- temporary column with reference to the order + ALTER TABLE addresses ADD COLUMN order_id INTEGER; + + -- copy billing address + INSERT INTO addresses ( + order_id, + address1, + address2, + company_name, + country_code, + city, + zipcode, + first_name, + last_name, + state + ) + SELECT + orders.orderid, + address1.value, + address2.value, + company.value, + country.value, + city.value, + zipcode.value, + firstname.value, + lastname.value, + state.value + FROM "order-orders" orders + LEFT JOIN "order-orders_fields" address1 ON address1.orderid = orders.orderid AND address1.fieldid = 158 + LEFT JOIN "order-orders_fields" address2 ON address2.orderid = orders.orderid AND address2.fieldid = 252 + LEFT JOIN "order-orders_fields" company ON company.orderid = orders.orderid AND company.fieldid = 177 + LEFT JOIN "order-orders_fields" country ON country.orderid = orders.orderid AND country.fieldid = 151 + LEFT JOIN "order-orders_fields" city ON city.orderid = orders.orderid AND city.fieldid = 160 + LEFT JOIN "order-orders_fields" zipcode ON zipcode.orderid = orders.orderid AND zipcode.fieldid = 159 + LEFT JOIN "order-orders_fields" firstname ON firstname.orderid = orders.orderid AND firstname.fieldid = 156 + LEFT JOIN "order-orders_fields" lastname ON lastname.orderid = orders.orderid AND lastname.fieldid = 157 + LEFT JOIN "order-orders_fields" state ON state.orderid = orders.orderid AND state.fieldid = 235; + + -- save billing address id on the order + INSERT INTO "order-orders_fields" (orderid, fieldid, value) + SELECT order_id, 255, id FROM addresses WHERE order_id IS NOT NULL; + + -- drop temp column + ALTER TABLE addresses DROP COLUMN order_id; + +COMMIT;