与众不同的是模板数据库的编码。在生产服务器上,它们具有ascii编码,而在开发箱上,它们是utf-8。
默认情况下,postgres使用template1创建一个数据库。我的理解是,如果其编码不是utf-8,则即使您使用utf-8编码创建数据库,您创建的数据库也会出现此问题。
因此,我删除了它,然后将其编码设置为UTF8来重新创建它。下面的代码片段可以做到这一点:
psql -U postgres
UPDATE pg_database SET datallowconn = TRUE where datname = 'template0';
\c template0
UPDATE pg_database SET datistemplate = FALSE where datname = 'template1';
drop database template1;
create database template1 with template = template0 encoding = 'UNICODE';
UPDATE pg_database SET datistemplate = TRUE where datname = 'template1';
\c template1
UPDATE pg_database SET datallowconn = FALSE where datname = 'template0';
现在,夹具可以顺利加载。