| 升级pg库时,主要是postgres和template1两个库的lc_collate要相同。 不相同,只能重新创建了。
 
 psql -h 127.0.0.1 -U postgres -p 5432
 (1)默认是postgres库,先把template1干掉,重建。
 -------------------------
 ALTER database template1 is_template=false;
 
 DROP database template1;
 
 CREATE DATABASE template1
 WITH OWNER = postgres
 ENCODING = 'UTF8'
 TABLESPACE = pg_default
 LC_COLLATE = 'C'
 LC_CTYPE = 'C'
 CONNECTION LIMIT = -1
 TEMPLATE template0;
 
 ALTER database template1 is_template=true;
 -------------------------
 (2)然后切到template1,再干掉postgres库,重建
 \c template1
 DROP DATABASE postgres;
 CREATE DATABASE postgres
 LC_COLLATE 'C' LC_CTYPE 'C'
 TEMPLATE template0;
 (3)重启db
 (4)查询:SHOW LC_COLLATE;
 ============================================
 升级步骤:
 (1)9和13的db都停止。
 (2)设置变量,这是新库的密码
 set PGPASSWORD=123456
 我的旧库没有密码
 (3)执行命令
 pg_upgrade -b "D:\Program Files (x86)\xxx\pgsql\bin" -B "E:\Program Files\PostgreSQL\13\bin" -d "D:\Program Files (x86)\xxx\data" -D "E:\Program Files\PostgreSQL\13\data" -U postgres -p 5432 -P 5433 -o " -h 127.0.0.1" -O "-h 127.0.0.1"
 具体参数意义,执行pg_upgrade --help
 
 |