-- 既有分类保留当前公开行为;以后新建分类默认草稿。不要重跑已成功的增量迁移。 BEGIN; ALTER TABLE public.categories ADD COLUMN status varchar(16) NOT NULL DEFAULT 'draft'; UPDATE public.categories SET status = 'active'; ALTER TABLE public.categories ADD CONSTRAINT categories_status_check CHECK (status IN ('draft', 'active', 'hidden')); CREATE INDEX categories_status_parent_sort_idx ON public.categories (status, parent_id, sort_order, id); COMMENT ON COLUMN public.categories.status IS '发布状态:draft 开发测试,active 上线,hidden 下架;公开访问还需所有上级分类 active'; COMMIT;