AppDbUpdater: Switch foreign keys off when heavily altering tables
This commit is contained in:
@ -1,6 +1,6 @@
|
|||||||
-- schema version 4 to 5
|
-- schema version 4 to 5
|
||||||
|
|
||||||
CREATE TABLE _area_commitment_type (
|
CREATE TABLE area_commitment_type_new (
|
||||||
vtrgid TEXT NOT NULL CHECK (vtrgid = sortid || COALESCE(attrid, '') || disc),
|
vtrgid TEXT NOT NULL CHECK (vtrgid = sortid || COALESCE(attrid, '') || disc),
|
||||||
sortid TEXT NOT NULL,
|
sortid TEXT NOT NULL,
|
||||||
attrid TEXT,
|
attrid TEXT,
|
||||||
@ -20,13 +20,15 @@ CREATE TABLE _area_commitment_type (
|
|||||||
ON DELETE RESTRICT
|
ON DELETE RESTRICT
|
||||||
) STRICT;
|
) STRICT;
|
||||||
|
|
||||||
INSERT INTO _area_commitment_type (vtrgid, sortid, attrid, disc, min_kg_per_ha, max_kg_per_ha, penalty_amount)
|
INSERT INTO area_commitment_type_new (vtrgid, sortid, attrid, disc, min_kg_per_ha, max_kg_per_ha, penalty_amount)
|
||||||
SELECT vtrgid, sortid, attrid_1, disc, min_kg_per_ha, max_kg_per_ha, penalty_amount FROM area_commitment_type;
|
SELECT vtrgid, sortid, attrid_1, disc, min_kg_per_ha, max_kg_per_ha, penalty_amount FROM area_commitment_type;
|
||||||
|
|
||||||
|
PRAGMA foreign_keys = OFF;
|
||||||
PRAGMA writable_schema = ON;
|
PRAGMA writable_schema = ON;
|
||||||
DROP TABLE area_commitment_type;
|
DROP TABLE area_commitment_type;
|
||||||
ALTER TABLE _area_commitment_type RENAME TO area_commitment_type;
|
ALTER TABLE area_commitment_type_new RENAME TO area_commitment_type;
|
||||||
PRAGMA writable_schema = OFF;
|
PRAGMA writable_schema = OFF;
|
||||||
|
PRAGMA foreign_keys = ON;
|
||||||
|
|
||||||
ALTER TABLE delivery_part ADD COLUMN attrid TEXT DEFAULT NULL REFERENCES wine_attribute (attrid)
|
ALTER TABLE delivery_part ADD COLUMN attrid TEXT DEFAULT NULL REFERENCES wine_attribute (attrid)
|
||||||
ON UPDATE CASCADE
|
ON UPDATE CASCADE
|
||||||
|
@ -22,10 +22,12 @@ CREATE TABLE payment_delivery_part_new (
|
|||||||
INSERT INTO payment_delivery_part_new (year, did, dpnr, avnr, net_amount, mod_abs, mod_rel)
|
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
|
SELECT year, did, dpnr, avnr, net_amount, mod_abs, mod_rel
|
||||||
FROM payment_delivery_part;
|
FROM payment_delivery_part;
|
||||||
|
PRAGMA foreign_keys = OFF;
|
||||||
PRAGMA writable_schema = ON;
|
PRAGMA writable_schema = ON;
|
||||||
DROP TABLE payment_delivery_part;
|
DROP TABLE payment_delivery_part;
|
||||||
ALTER TABLE payment_delivery_part_new RENAME TO payment_delivery_part;
|
ALTER TABLE payment_delivery_part_new RENAME TO payment_delivery_part;
|
||||||
PRAGMA writable_schema = OFF;
|
PRAGMA writable_schema = OFF;
|
||||||
|
PRAGMA foreign_keys = ON;
|
||||||
|
|
||||||
DROP TRIGGER IF EXISTS t_payment_delivery_part_i;
|
DROP TRIGGER IF EXISTS t_payment_delivery_part_i;
|
||||||
CREATE TRIGGER t_payment_delivery_part_i
|
CREATE TRIGGER t_payment_delivery_part_i
|
||||||
|
Reference in New Issue
Block a user