Add tenant wipeout script
+-- WARNING !!!
+-- THIS DELETES MOST OF THE TENANT INFORMATION.
+-- USE ONLY IN TESTING.
+--
+-- A mysql stored procedure to trim tenant information.
+-- Doesn't delete the tenant and accounts.
+--
+-- Usage (from mysql commandline):
+-- CALL trimTenant(API_KEY)
+--
+-- For e.g.,
+-- CALL trimTenant('tenant1')
+
drop procedure if exists trimTenant;
DELIMITER //
CREATE PROCEDURE trimTenant(p_api_key varchar(36))
@@ -73,3 +86,70 @@ BEGIN
END;
//
DELIMITER ;
+
+-- WARNING !!!
+-- THIS DELETES ALL THE TENANT INFORMATION COMPLETELY
+-- ONLY TO BE USED IN TESTING
+--
+-- A mysql stored procedure to wipeout the tenant completely.
+--
+-- Usage (from mysql commandline):
+-- CALL wipeoutTenant(API_KEY)
+--
+-- For e.g.,
+-- CALL wipeoutTenant('tenant1')
+
+drop procedure if exists wipeoutTenant;
+DELIMITER //
+CREATE PROCEDURE wipeoutTenant(p_api_key varchar(36))
+BEGIN
+
+ DECLARE v_tenant_record_id bigint /*! unsigned */;
+ DECLARE v_tenant_id varchar(36);
+
+ select record_id from tenants WHERE api_key = p_api_key into v_tenant_record_id;
+ select id from tenants WHERE api_key = p_api_key into v_tenant_id;
+
+ -- Trim the tenant first
+ CALL trimTenant(p_api_key);
+
+ DELETE FROM account_email_history WHERE tenant_record_id = v_tenant_record_id;
+ DELETE FROM account_emails WHERE tenant_record_id = v_tenant_record_id;
+ DELETE FROM account_history WHERE tenant_record_id = v_tenant_record_id;
+ DELETE FROM accounts WHERE tenant_record_id = v_tenant_record_id;
+ DELETE FROM catalog_override_block_definition WHERE tenant_record_id = v_tenant_record_id;
+ DELETE FROM catalog_override_phase_definition WHERE tenant_record_id = v_tenant_record_id;
+ DELETE FROM catalog_override_phase_usage WHERE tenant_record_id = v_tenant_record_id;
+ DELETE FROM catalog_override_plan_definition WHERE tenant_record_id = v_tenant_record_id;
+ DELETE FROM catalog_override_plan_phase WHERE tenant_record_id = v_tenant_record_id;
+ DELETE FROM catalog_override_tier_block WHERE tenant_record_id = v_tenant_record_id;
+ DELETE FROM catalog_override_tier_definition WHERE tenant_record_id = v_tenant_record_id;
+ DELETE FROM catalog_override_usage_definition WHERE tenant_record_id = v_tenant_record_id;
+ DELETE FROM catalog_override_usage_tier WHERE tenant_record_id = v_tenant_record_id;
+
+ -- Uses tenant ID (instead of record id)
+ DELETE FROM stripe_payment_methods WHERE kb_tenant_id = v_tenant_id;
+ DELETE FROM stripe_responses WHERE kb_tenant_id = v_tenant_id;
+ DELETE FROM stripe_transactions WHERE kb_tenant_id = v_tenant_id;
+
+ DELETE FROM tag_definition_history WHERE tenant_record_id = v_tenant_record_id;
+ DELETE FROM tag_definitions WHERE tenant_record_id = v_tenant_record_id;
+ DELETE FROM tenant_broadcasts WHERE tenant_record_id = v_tenant_record_id;
+ DELETE FROM tenant_kvs WHERE tenant_record_id = v_tenant_record_id;
+
+ DELETE FROM tenants WHERE id = v_tenant_id;
+
+ -- NOT DELETED TABLES
+ -- _invoice_payment_control_plugin_auto_pay_off
+ -- analytics_currency_conversion
+ -- analytics_reports WHERE
+ -- node_infos
+ -- roles_permissions
+ -- service_broadcasts
+ -- sessions
+ -- user_roles
+ -- users
+
+ END;
+//
+DELIMITER ;
