Apply remaining pricelist and local-first updates
This commit is contained in:
37
migrations/010_add_pricelist_to_configurations.sql
Normal file
37
migrations/010_add_pricelist_to_configurations.sql
Normal file
@@ -0,0 +1,37 @@
|
||||
-- Add pricelist binding to configurations
|
||||
ALTER TABLE qt_configurations
|
||||
ADD COLUMN pricelist_id BIGINT UNSIGNED NULL AFTER server_count;
|
||||
|
||||
ALTER TABLE qt_configurations
|
||||
ADD INDEX idx_qt_configurations_pricelist_id (pricelist_id),
|
||||
ADD CONSTRAINT fk_qt_configurations_pricelist_id
|
||||
FOREIGN KEY (pricelist_id)
|
||||
REFERENCES qt_pricelists(id)
|
||||
ON DELETE RESTRICT
|
||||
ON UPDATE CASCADE;
|
||||
|
||||
-- Backfill existing configurations to latest active pricelist
|
||||
SET @latest_active_pricelist_id := (
|
||||
SELECT id
|
||||
FROM qt_pricelists
|
||||
WHERE is_active = 1
|
||||
ORDER BY created_at DESC
|
||||
LIMIT 1
|
||||
);
|
||||
|
||||
UPDATE qt_configurations
|
||||
SET pricelist_id = @latest_active_pricelist_id
|
||||
WHERE pricelist_id IS NULL
|
||||
AND @latest_active_pricelist_id IS NOT NULL;
|
||||
|
||||
-- Recalculate usage_count from configuration bindings
|
||||
UPDATE qt_pricelists SET usage_count = 0;
|
||||
|
||||
UPDATE qt_pricelists pl
|
||||
JOIN (
|
||||
SELECT pricelist_id, COUNT(*) AS cnt
|
||||
FROM qt_configurations
|
||||
WHERE pricelist_id IS NOT NULL
|
||||
GROUP BY pricelist_id
|
||||
) cfg ON cfg.pricelist_id = pl.id
|
||||
SET pl.usage_count = cfg.cnt;
|
||||
Reference in New Issue
Block a user