From 06abcc01e160cd75e48be77b2ba13f1c5f053003 Mon Sep 17 00:00:00 2001 From: Rene Krenn Date: Thu, 12 Apr 2018 16:43:03 +0200 Subject: [PATCH] TT#35662 move product_id to billing.contracts Change-Id: I153a6d57d5e0353657fc1facebd1db132f0df811 --- db_scripts/diff/15394.down | 3 +++ db_scripts/diff/15394.up | 31 +++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 db_scripts/diff/15394.down create mode 100644 db_scripts/diff/15394.up diff --git a/db_scripts/diff/15394.down b/db_scripts/diff/15394.down new file mode 100644 index 00000000..0d2482e8 --- /dev/null +++ b/db_scripts/diff/15394.down @@ -0,0 +1,3 @@ +use billing; + +alter table contracts drop column product_id; diff --git a/db_scripts/diff/15394.up b/db_scripts/diff/15394.up new file mode 100644 index 00000000..d2a9cc01 --- /dev/null +++ b/db_scripts/diff/15394.up @@ -0,0 +1,31 @@ +use billing; + +alter table contracts add column product_id int(11) unsigned default null; + +update + contracts c +join ( + select + bm1.contract_id, + max(bm1.id) as id + from + billing.billing_mappings bm1 + join ( + select + bm2.contract_id, + max(bm2.start_date) as start_date + from + billing.billing_mappings bm2 + where ( + bm2.end_date >= now() or bm2.end_date is null) + and (bm2.start_date <= now() or bm2.start_date is null + ) group by bm2.contract_id + ) as mx on bm1.contract_id = mx.contract_id and bm1.start_date <=> mx.start_date + group by bm1.contract_id +) as bm_actual on bm_actual.contract_id = c.id +join + billing.billing_mappings bm on bm.id = bm_actual.id +set c.product_id = bm.product_id; + +alter table contracts modify column product_id int(11) unsigned not null, add constraint c_productid_ref foreign key (product_id) references products (id) on update cascade; +