bmc_hub/scripts/workflow_uninstall.sql

59 lines
3.4 KiB
MySQL
Raw Normal View History

-- Reviewable local-only downgrade, deliberately outside migrations/.
-- Run only via workflow_backup.py after shutdown, verified backup and audit export.
-- Preserves customers, cases, time entries, tags, entity assignments and all actual
-- card transactions/order drafts. Removes new workflow definitions/audit metadata.
BEGIN;
SET LOCAL lock_timeout = '10s';
DO $$ BEGIN
IF current_database() <> 'bmc_hub' AND current_database() NOT LIKE 'bmc\_workflow\_test%' ESCAPE '\' THEN RAISE EXCEPTION 'Unexpected database'; END IF;
END $$;
DROP TRIGGER IF EXISTS bmc_case_generic_workflow ON sag_sager;
DROP TRIGGER IF EXISTS bmc_tags_generic_workflow ON entity_tags;
DROP TRIGGER IF EXISTS bmc_customer_generic_workflow ON customers;
DROP TRIGGER IF EXISTS bmc_mail_generic_workflow ON email_messages;
DROP TRIGGER IF EXISTS bmc_task_generic_workflow ON sag_todo_steps;
DROP FUNCTION IF EXISTS bmc_capture_module_workflow();
DROP TRIGGER IF EXISTS bmc_time_workflow_capture ON tmodule_times;
DROP TRIGGER IF EXISTS bmc_case_workflow_capture ON sag_sager;
DROP TRIGGER IF EXISTS bmc_tag_workflow_capture ON entity_tags;
DROP TRIGGER IF EXISTS workflow_entity_tag_audit ON entity_tags;
DROP TRIGGER IF EXISTS bmc_workflow_version_immutable_trigger ON bmc_workflow_versions;
DROP FUNCTION IF EXISTS bmc_capture_time_workflow();
DROP FUNCTION IF EXISTS bmc_invalidate_case_times();
DROP FUNCTION IF EXISTS bmc_invalidate_tag_times();
DROP FUNCTION IF EXISTS workflow_entity_tag_audit();
DROP FUNCTION IF EXISTS bmc_workflow_version_immutable();
DROP TABLE IF EXISTS bmc_workflow_exports;
DROP TABLE IF EXISTS bmc_workflow_customer_activation_history;
DROP TABLE IF EXISTS bmc_workflow_customer_activation;
DROP TABLE IF EXISTS bmc_workflow_resource_history;
DROP TABLE IF EXISTS bmc_workflow_settlements;
DROP TABLE IF EXISTS bmc_workflow_effects;
DROP TABLE IF EXISTS bmc_billing_decisions;
DROP TABLE IF EXISTS bmc_workflow_executions;
DROP TABLE IF EXISTS bmc_workflow_activation_history;
DROP TABLE IF EXISTS workflow_tag_ai_jobs;
DROP TABLE IF EXISTS workflow_tag_proposals;
DROP TABLE IF EXISTS workflow_tag_history;
DROP TABLE IF EXISTS workflow_tag_keywords;
DROP TABLE IF EXISTS bmc_workflow_events;
ALTER TABLE bmc_workflows DROP CONSTRAINT IF EXISTS bmc_workflows_active_version_fk;
DROP TABLE IF EXISTS bmc_workflow_versions;
DROP TABLE IF EXISTS bmc_workflows;
DROP TABLE IF EXISTS bmc_workflow_runtime;
DROP INDEX IF EXISTS prepaid_workflow_entry_once;
ALTER TABLE tticket_prepaid_transactions DROP COLUMN IF EXISTS workflow_time_entry_id;
ALTER TABLE tmodule_times DROP COLUMN IF EXISTS workflow_revision;
ALTER TABLE entity_tags DROP COLUMN IF EXISTS source;
ALTER TABLE tags DROP COLUMN IF EXISTS parent_id;
ALTER TABLE tags DROP COLUMN IF EXISTS visibility;
ALTER TABLE tags DROP COLUMN IF EXISTS billing_relevant;
ALTER TABLE customer_fixed_price_agreements DROP COLUMN IF EXISTS workflow_coverage;
ALTER TABLE customer_fixed_price_agreements DROP COLUMN IF EXISTS monthly_price;
ALTER TABLE tticket_prepaid_cards DROP COLUMN IF EXISTS workflow_coverage;
DELETE FROM group_permissions WHERE permission_id IN (SELECT id FROM permissions WHERE code IN
('workflows.view','workflows.manage','workflows.activate','workflows.decisions.view','workflows.override','workflows.settle'));
DELETE FROM permissions WHERE code IN
('workflows.view','workflows.manage','workflows.activate','workflows.decisions.view','workflows.override','workflows.settle');
COMMIT;