1234567891011121314151617181920212223242526272829303132333435 |
- -- 微信用户表字段迁移脚本
- -- 将 wechat_code 字段重命名为 openid
- -- 注意:执行前请备份数据!
- -- 检查表是否存在
- DO $$
- BEGIN
- IF EXISTS (SELECT FROM information_schema.tables WHERE table_schema = 'public' AND table_name = 'wechat_users') THEN
- -- 检查是否已经有openid字段
- IF NOT EXISTS (SELECT FROM information_schema.columns WHERE table_schema = 'public' AND table_name = 'wechat_users' AND column_name = 'openid') THEN
- -- 如果存在wechat_code字段,则重命名
- IF EXISTS (SELECT FROM information_schema.columns WHERE table_schema = 'public' AND table_name = 'wechat_users' AND column_name = 'wechat_code') THEN
- -- 重命名字段
- ALTER TABLE public.wechat_users RENAME COLUMN wechat_code TO openid;
-
- -- 更新字段注释
- COMMENT ON COLUMN public.wechat_users.openid IS '微信用户openid,唯一标识';
-
- -- 重命名相关索引
- IF EXISTS (SELECT FROM pg_class WHERE relname = 'idx_wechat_users_wechat_code') THEN
- DROP INDEX IF EXISTS public.idx_wechat_users_wechat_code;
- CREATE INDEX idx_wechat_users_openid ON public.wechat_users(openid);
- END IF;
-
- RAISE NOTICE '成功将 wechat_code 字段重命名为 openid';
- ELSE
- RAISE NOTICE 'wechat_code 字段不存在,无需迁移';
- END IF;
- ELSE
- RAISE NOTICE 'openid 字段已存在,无需迁移';
- END IF;
- ELSE
- RAISE NOTICE 'wechat_users 表不存在,请先创建表';
- END IF;
- END $$;
|