连接pgsql失败,吓了一跳,解决方法如下:
 
1.找到需要执行的文件
 
thinkphp5.1代码里早有准备,核心文件里的\thinkphp\library\think\db\connector\pgsql.sql
 
找到之后先不要执行
 
2.pgsql12以上,还需要修改
 
将\thinkphp\library\think\db\connector\pgsql.sql中的
 
pg_attrdef.adsrc AS fields_default,
 
改为
 
'''' AS fields_default,
 
原因为PG12中这个表已没有该字段
 
注意,这里是4个单引号’,而不是两个双引号
 
3.执行
 
 
 
如果没有修改就直接执行了sql的话,修改后再次执行时,会显示type已存在,删除sql中create type那一段:
 
CREATE TYPE "public"."tablestruct" AS (
  "fields_key_name" varchar(100),
  "fields_name" VARCHAR(200),
  "fields_type" VARCHAR(20),
  "fields_length" BIGINT,
  "fields_not_null" VARCHAR(10),
  "fields_default" VARCHAR(500),
  "fields_comment" VARCHAR(1000)
);