diff --git a/migrations/000002_rbac_data_permission.up.sql b/migrations/000002_rbac_data_permission.up.sql index 21aa22f..41b086c 100644 --- a/migrations/000002_rbac_data_permission.up.sql +++ b/migrations/000002_rbac_data_permission.up.sql @@ -21,12 +21,12 @@ CREATE TABLE IF NOT EXISTS tb_account ( ); -- T015: tb_account 索引 -CREATE UNIQUE INDEX idx_account_username ON tb_account(username) WHERE deleted_at IS NULL; -CREATE UNIQUE INDEX idx_account_phone ON tb_account(phone) WHERE deleted_at IS NULL; -CREATE INDEX idx_account_user_type ON tb_account(user_type); -CREATE INDEX idx_account_shop_id ON tb_account(shop_id); -CREATE INDEX idx_account_parent_id ON tb_account(parent_id); -CREATE INDEX idx_account_deleted_at ON tb_account(deleted_at); +CREATE UNIQUE INDEX IF NOT EXISTS idx_account_username ON tb_account(username) WHERE deleted_at IS NULL; +CREATE UNIQUE INDEX IF NOT EXISTS idx_account_phone ON tb_account(phone) WHERE deleted_at IS NULL; +CREATE INDEX IF NOT EXISTS idx_account_user_type ON tb_account(user_type); +CREATE INDEX IF NOT EXISTS idx_account_shop_id ON tb_account(shop_id); +CREATE INDEX IF NOT EXISTS idx_account_parent_id ON tb_account(parent_id); +CREATE INDEX IF NOT EXISTS idx_account_deleted_at ON tb_account(deleted_at); -- tb_account 表和字段注释 COMMENT ON TABLE tb_account IS '账号表:存储系统用户账号信息,支持层级关系和软删除'; @@ -61,8 +61,8 @@ CREATE TABLE IF NOT EXISTS tb_role ( ); -- T017: tb_role 索引 -CREATE INDEX idx_role_role_type ON tb_role(role_type); -CREATE INDEX idx_role_deleted_at ON tb_role(deleted_at); +CREATE INDEX IF NOT EXISTS idx_role_role_type ON tb_role(role_type); +CREATE INDEX IF NOT EXISTS idx_role_deleted_at ON tb_role(deleted_at); -- tb_role 表和字段注释 COMMENT ON TABLE tb_role IS '角色表:定义系统角色,支持软删除'; @@ -97,10 +97,10 @@ CREATE TABLE IF NOT EXISTS tb_permission ( ); -- T019: tb_permission 索引 -CREATE UNIQUE INDEX idx_permission_code ON tb_permission(perm_code) WHERE deleted_at IS NULL; -CREATE INDEX idx_permission_type ON tb_permission(perm_type); -CREATE INDEX idx_permission_parent_id ON tb_permission(parent_id); -CREATE INDEX idx_permission_deleted_at ON tb_permission(deleted_at); +CREATE UNIQUE INDEX IF NOT EXISTS idx_permission_code ON tb_permission(perm_code) WHERE deleted_at IS NULL; +CREATE INDEX IF NOT EXISTS idx_permission_type ON tb_permission(perm_type); +CREATE INDEX IF NOT EXISTS idx_permission_parent_id ON tb_permission(parent_id); +CREATE INDEX IF NOT EXISTS idx_permission_deleted_at ON tb_permission(deleted_at); -- tb_permission 表和字段注释 COMMENT ON TABLE tb_permission IS '权限表:定义系统权限(菜单和按钮),支持层级结构和软删除'; @@ -134,10 +134,10 @@ CREATE TABLE IF NOT EXISTS tb_account_role ( ); -- T021: tb_account_role 索引 -CREATE INDEX idx_account_role_account_id ON tb_account_role(account_id); -CREATE INDEX idx_account_role_role_id ON tb_account_role(role_id); -CREATE INDEX idx_account_role_deleted_at ON tb_account_role(deleted_at); -CREATE UNIQUE INDEX idx_account_role_unique ON tb_account_role(account_id, role_id) WHERE deleted_at IS NULL; +CREATE INDEX IF NOT EXISTS idx_account_role_account_id ON tb_account_role(account_id); +CREATE INDEX IF NOT EXISTS idx_account_role_role_id ON tb_account_role(role_id); +CREATE INDEX IF NOT EXISTS idx_account_role_deleted_at ON tb_account_role(deleted_at); +CREATE UNIQUE INDEX IF NOT EXISTS idx_account_role_unique ON tb_account_role(account_id, role_id) WHERE deleted_at IS NULL; -- tb_account_role 表和字段注释 COMMENT ON TABLE tb_account_role IS '账号-角色关联表:实现账号和角色的多对多关系,支持软删除'; @@ -167,10 +167,10 @@ CREATE TABLE IF NOT EXISTS tb_role_permission ( ); -- T023: tb_role_permission 索引 -CREATE INDEX idx_role_permission_role_id ON tb_role_permission(role_id); -CREATE INDEX idx_role_permission_perm_id ON tb_role_permission(perm_id); -CREATE INDEX idx_role_permission_deleted_at ON tb_role_permission(deleted_at); -CREATE UNIQUE INDEX idx_role_permission_unique ON tb_role_permission(role_id, perm_id) WHERE deleted_at IS NULL; +CREATE INDEX IF NOT EXISTS idx_role_permission_role_id ON tb_role_permission(role_id); +CREATE INDEX IF NOT EXISTS idx_role_permission_perm_id ON tb_role_permission(perm_id); +CREATE INDEX IF NOT EXISTS idx_role_permission_deleted_at ON tb_role_permission(deleted_at); +CREATE UNIQUE INDEX IF NOT EXISTS idx_role_permission_unique ON tb_role_permission(role_id, perm_id) WHERE deleted_at IS NULL; -- tb_role_permission 表和字段注释 COMMENT ON TABLE tb_role_permission IS '角色-权限关联表:实现角色和权限的多对多关系,支持软删除';