59 lines
3.4 KiB
PL/PgSQL
59 lines
3.4 KiB
PL/PgSQL
-- 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;
|