-- Keep this guard durable across a failed down attempt. It rejects a rollback before -- any baseline table is dropped when an administrator has created business data. CREATE TABLE IF NOT EXISTS chorus_admin_baseline_down_guard ( id TINYINT NOT NULL, CONSTRAINT chk_chorus_admin_baseline_down_guard CHECK (id = 0) ) ENGINE=InnoDB; DELETE FROM chorus_admin_baseline_down_guard; INSERT INTO chorus_admin_baseline_down_guard (id) SELECT 1 WHERE EXISTS (SELECT 1 FROM sys_user) OR EXISTS (SELECT 1 FROM sys_role) OR EXISTS (SELECT 1 FROM sys_dept) OR EXISTS (SELECT 1 FROM sys_post) OR EXISTS (SELECT 1 FROM sys_menu) OR EXISTS (SELECT 1 FROM sys_api) OR EXISTS (SELECT 1 FROM sys_config) OR EXISTS (SELECT 1 FROM sys_dict_type) OR EXISTS (SELECT 1 FROM sys_dict_data) OR EXISTS (SELECT 1 FROM sys_job) OR EXISTS (SELECT 1 FROM sys_login_log) OR EXISTS (SELECT 1 FROM sys_opera_log) OR EXISTS (SELECT 1 FROM sys_tables) OR EXISTS (SELECT 1 FROM sys_columns) OR EXISTS (SELECT 1 FROM sys_casbin_rule); DROP TABLE sys_columns; DROP TABLE sys_tables; DROP TABLE sys_opera_log; DROP TABLE sys_login_log; DROP TABLE sys_job; DROP TABLE sys_dict_data; DROP TABLE sys_dict_type; DROP TABLE sys_config; DROP TABLE sys_menu_api_rule; DROP TABLE sys_role_dept; DROP TABLE sys_role_menu; DROP TABLE sys_casbin_rule; DROP TABLE sys_api; DROP TABLE sys_menu; DROP TABLE sys_user; DROP TABLE sys_post; DROP TABLE sys_dept; DROP TABLE sys_role; DROP TABLE chorus_admin_baseline_down_guard;