Liron Aravot has uploaded a new change for review. Change subject: core: deleted trigger on db upgrade ......................................................................
core: deleted trigger on db upgrade The upgrade script 03_05_0730_drop_disk_image_dynamic_fk.sql replaces the use of a cascade delete of a foregin key with a trigger. When performing a further update to the db, the functions are being deleted with CASCADE, which will cause the trigger to be deleted and never be added again. The quick solution is to move the trigger/function creation to disk_image_dynamic_sp as we currently don't have any trigger creation infrastructure after update is performed. Upgrade script is provided as well to perform cleanup of orphand records that might have been left in disk_image_dynamic. Change-Id: I594cddb968795a5a6a0d04e2c6bed9002c025ef9 Signed-off-by: Liron Aravot <lara...@redhat.com> --- M packaging/dbscripts/disk_image_dynamic_sp.sql A packaging/dbscripts/upgrade/03_05_0750_delete_orphand_disk_image_dynamic_records.sql 2 files changed, 16 insertions(+), 0 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/47/29547/1 diff --git a/packaging/dbscripts/disk_image_dynamic_sp.sql b/packaging/dbscripts/disk_image_dynamic_sp.sql index 817e9b1..17673e2 100644 --- a/packaging/dbscripts/disk_image_dynamic_sp.sql +++ b/packaging/dbscripts/disk_image_dynamic_sp.sql @@ -110,3 +110,17 @@ LANGUAGE plpgsql; + + + +CREATE OR REPLACE FUNCTION fn_image_deleted() RETURNS TRIGGER AS $$ +BEGIN + DELETE FROM disk_image_dynamic dim WHERE DIM.image_id = OLD.image_guid; + RETURN OLD; +END; +$$ LANGUAGE plpgsql; + +DROP TRIGGER IF EXISTS delete_disk_image_dynamic_for_image ON disk_image_dynamic; + +CREATE TRIGGER delete_disk_image_dynamic_for_image BEFORE DELETE ON IMAGES FOR EACH ROW +EXECUTE PROCEDURE fn_image_deleted(); \ No newline at end of file diff --git a/packaging/dbscripts/upgrade/03_05_0750_delete_orphand_disk_image_dynamic_records.sql b/packaging/dbscripts/upgrade/03_05_0750_delete_orphand_disk_image_dynamic_records.sql new file mode 100644 index 0000000..5ddad16 --- /dev/null +++ b/packaging/dbscripts/upgrade/03_05_0750_delete_orphand_disk_image_dynamic_records.sql @@ -0,0 +1,2 @@ +DELETE FROM disk_image_dynamic +WHERE image_id NOT IN (SELECT image_guid FROM images); -- To view, visit http://gerrit.ovirt.org/29547 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I594cddb968795a5a6a0d04e2c6bed9002c025ef9 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Liron Aravot <lara...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches