killbill-uncached
Changes
util/src/main/resources/trimTenant.sql 23(+23 -0)
util/src/main/resources/wipeoutTenant.sql 57(+57 -0)
Details
util/src/main/resources/trimTenant.sql 23(+23 -0)
diff --git a/util/src/main/resources/trimTenant.sql b/util/src/main/resources/trimTenant.sql
index d0bfb0c..8499101 100644
--- a/util/src/main/resources/trimTenant.sql
+++ b/util/src/main/resources/trimTenant.sql
@@ -1,11 +1,26 @@
+-- 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))
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;
DELETE FROM analytics_account_fields WHERE tenant_record_id = v_tenant_record_id;
DELETE FROM analytics_account_tags WHERE tenant_record_id = v_tenant_record_id;
@@ -67,8 +82,16 @@ BEGIN
DELETE FROM rolled_up_usage WHERE tenant_record_id = v_tenant_record_id;
DELETE FROM subscription_events WHERE tenant_record_id = v_tenant_record_id;
DELETE FROM subscriptions WHERE tenant_record_id = v_tenant_record_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 tag_history WHERE tenant_record_id = v_tenant_record_id;
DELETE FROM tags WHERE tenant_record_id = v_tenant_record_id;
+ DELETE FROM tenant_broadcasts 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;
END;
//
util/src/main/resources/wipeoutTenant.sql 57(+57 -0)
diff --git a/util/src/main/resources/wipeoutTenant.sql b/util/src/main/resources/wipeoutTenant.sql
new file mode 100644
index 0000000..51364d3
--- /dev/null
+++ b/util/src/main/resources/wipeoutTenant.sql
@@ -0,0 +1,57 @@
+-- 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;
+
+ DELETE FROM _invoice_payment_control_plugin_auto_pay_off
+ WHERE account_id in (
+ SELECT id 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;
+
+ DELETE FROM tenant_kvs WHERE tenant_record_id = v_tenant_record_id;
+
+ -- Trim the tenant
+ CALL trimTenant(p_api_key);
+
+ DELETE FROM tenants WHERE id = v_tenant_id;
+
+ -- NOT DELETED TABLES
+ -- analytics_currency_conversion
+ -- analytics_reports WHERE
+ -- node_infos
+ -- roles_permissions
+ -- service_broadcasts
+ -- sessions
+ -- user_roles
+ -- users
+
+ END;
+//
+DELIMITER ;