AppDbUpdater: Switch foreign keys off when heavily altering tables
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
-- 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),
|
||||
sortid TEXT NOT NULL,
|
||||
attrid TEXT,
|
||||
@ -20,13 +20,15 @@ CREATE TABLE _area_commitment_type (
|
||||
ON DELETE RESTRICT
|
||||
) 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;
|
||||
|
||||
PRAGMA foreign_keys = OFF;
|
||||
PRAGMA writable_schema = ON;
|
||||
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 foreign_keys = ON;
|
||||
|
||||
ALTER TABLE delivery_part ADD COLUMN attrid TEXT DEFAULT NULL REFERENCES wine_attribute (attrid)
|
||||
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)
|
||||
SELECT year, did, dpnr, avnr, net_amount, mod_abs, mod_rel
|
||||
FROM payment_delivery_part;
|
||||
PRAGMA foreign_keys = OFF;
|
||||
PRAGMA writable_schema = ON;
|
||||
DROP TABLE payment_delivery_part;
|
||||
ALTER TABLE payment_delivery_part_new RENAME TO payment_delivery_part;
|
||||
PRAGMA writable_schema = OFF;
|
||||
PRAGMA foreign_keys = ON;
|
||||
|
||||
DROP TRIGGER IF EXISTS t_payment_delivery_part_i;
|
||||
CREATE TRIGGER t_payment_delivery_part_i
|
||||
|
Reference in New Issue
Block a user