AppDbUpdater: Fix migration 10 to 11 by creating a new table
This commit is contained in:
@ -1,17 +1,33 @@
|
||||
-- schema version 10 to 11
|
||||
|
||||
-- Drop columns, if they exist...
|
||||
ALTER TABLE payment_delivery_part DROP COLUMN price_1;
|
||||
ALTER TABLE payment_delivery_part DROP COLUMN price_2;
|
||||
ALTER TABLE payment_delivery_part DROP COLUMN price_3;
|
||||
ALTER TABLE payment_delivery_part DROP COLUMN price_4;
|
||||
ALTER TABLE payment_delivery_part DROP COLUMN price_5;
|
||||
ALTER TABLE payment_delivery_part DROP COLUMN price_6;
|
||||
ALTER TABLE payment_delivery_part DROP COLUMN price_7;
|
||||
ALTER TABLE payment_delivery_part DROP COLUMN price_8;
|
||||
ALTER TABLE payment_delivery_part DROP COLUMN price_9;
|
||||
CREATE TABLE payment_delivery_part_new (
|
||||
year INTEGER NOT NULL,
|
||||
did INTEGER NOT NULL,
|
||||
dpnr INTEGER NOT NULL,
|
||||
avnr INTEGER NOT NULL,
|
||||
|
||||
DROP TRIGGER t_payment_delivery_part_i;
|
||||
net_amount INTEGER NOT NULL,
|
||||
mod_abs INTEGER NOT NULL DEFAULT 0,
|
||||
mod_rel REAL NOT NULL DEFAULT 0,
|
||||
amount INTEGER NOT NULL GENERATED ALWAYS AS (ROUND(net_amount * (1 + mod_rel) + mod_abs)) STORED,
|
||||
|
||||
CONSTRAINT pk_payment_delivery_part PRIMARY KEY (year, did, dpnr, avnr),
|
||||
CONSTRAINT fk_payment_delivery_part_delivery_part FOREIGN KEY (year, did, dpnr) REFERENCES delivery_part (year, did, dpnr)
|
||||
ON UPDATE CASCADE
|
||||
ON DELETE CASCADE,
|
||||
CONSTRAINT fk_payment_delivery_part_payment_variant FOREIGN KEY (year, avnr) REFERENCES payment_variant (year, avnr)
|
||||
ON UPDATE CASCADE
|
||||
ON DELETE CASCADE
|
||||
) STRICT;
|
||||
INSERT INTO payment_delivery_part_new (year, did, dpnr, avnr, net_amount, mod_abs, mod_rel)
|
||||
SELECT year, did, dpnr, avnr, net_amount, mod_abs, mod_rel
|
||||
FROM payment_delivery_part;
|
||||
PRAGMA writable_schema = ON;
|
||||
DROP TABLE payment_delivery_part;
|
||||
ALTER TABLE payment_delivery_part_new RENAME TO payment_delivery_part;
|
||||
PRAGMA writable_schema = OFF;
|
||||
|
||||
DROP TRIGGER IF EXISTS t_payment_delivery_part_i;
|
||||
CREATE TRIGGER t_payment_delivery_part_i
|
||||
AFTER INSERT ON payment_delivery_part FOR EACH ROW
|
||||
BEGIN
|
||||
@ -20,7 +36,7 @@ BEGIN
|
||||
ON CONFLICT DO UPDATE SET net_amount = net_amount + excluded.net_amount;
|
||||
END;
|
||||
|
||||
DROP TRIGGER t_payment_delivery_part_u;
|
||||
DROP TRIGGER IF EXISTS t_payment_delivery_part_u;
|
||||
CREATE TRIGGER t_payment_delivery_part_u
|
||||
AFTER UPDATE ON payment_delivery_part FOR EACH ROW
|
||||
BEGIN
|
||||
@ -32,7 +48,7 @@ BEGIN
|
||||
ON CONFLICT DO UPDATE SET net_amount = net_amount + excluded.net_amount;
|
||||
END;
|
||||
|
||||
DROP TRIGGER t_payment_delivery_part_d;
|
||||
DROP TRIGGER IF EXISTS t_payment_delivery_part_d;
|
||||
CREATE TRIGGER t_payment_delivery_part_d
|
||||
AFTER DELETE ON payment_delivery_part FOR EACH ROW
|
||||
BEGIN
|
||||
@ -41,7 +57,7 @@ BEGIN
|
||||
WHERE (year, avnr, mgnr) IN (SELECT year, OLD.avnr, mgnr FROM delivery WHERE (year, did) = (OLD.year, OLD.did));
|
||||
END;
|
||||
|
||||
DROP TRIGGER t_payment_delivery_part_bucket_u;
|
||||
DROP TRIGGER IF EXISTS t_payment_delivery_part_bucket_u;
|
||||
CREATE TRIGGER t_payment_delivery_part_bucket_u
|
||||
AFTER UPDATE ON payment_delivery_part_bucket FOR EACH ROW
|
||||
BEGIN
|
||||
|
Reference in New Issue
Block a user