postgresql 生成新的schema,并迁称原表至新的schema
一、创建 jy schema
CREATE SCHEMA IF NOT EXISTS jy; 验证: SELECT schema_name FROM information_schema.schemata WHERE schema_name='jy';
二、一次性生成所有迁移语句
先看看 public 里有多少表: SELECT tablename FROM pg_tables WHERE schemaname='public'; 然后生成迁移脚本(复制执行): SELECT 'ALTER TABLE public."' || tablename || '" SET SCHEMA jy;' FROM pg_tables WHERE schemaname = 'public';
三、序列 & identity 也一起迁移(非常关键)
SELECT 'ALTER SEQUENCE public."' || sequence_name || '" SET SCHEMA jy;' FROM information_schema.sequences WHERE sequence_schema='public';
四、把视图、物化视图也迁移(如果有)
SELECT 'ALTER VIEW public."' || table_name || '" SET SCHEMA jy;' FROM information_schema.views WHERE table_schema='public';
五、设置 search_path(让程序无感)
ALTER DATABASE jtjy SET search_path = jy, public; 验证: SHOW search_path;