Files
chorus/migrations/000002_admin_baseline.down.sql
T

46 lines
1.5 KiB
SQL

-- 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;