You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在pgloader连接字符串中指定schema?添加语句后执行失败

在pgloader中指定目标Schema的正确方法

你直接写SET search_path会报错,是因为pgloader的脚本有自己的语法规则,不支持直接插入独立的SQL命令。下面是两种可行的解决办法:

方法1:在PostgreSQL连接字符串中直接指定Schema

把目标Schema参数加到INTO的连接字符串末尾,用?schema=的形式:

LOAD DATABASE
     FROM mysql://<username>:<password>@localhost:3307/airflow
     INTO pgsql://<username>:<password>@localhost:5437/airflow?schema=your_schema
 
WITH include no drop, data only;

方法2:用BEFORE LOAD DO执行SQL命令

如果需要执行更多初始化SQL(比如设置search_path),可以放在pgloader的BEFORE LOAD DO块里,这是它支持的语法:

LOAD DATABASE
     FROM mysql://<username>:<password>@localhost:3307/airflow
     INTO pgsql://<username>:<password>@localhost:5437/airflow
 
WITH include no drop, data only

BEFORE LOAD DO
$$
SET search_path TO your_schema;
$$;

注意:pgloader的脚本语法要求所有命令都要符合它的DSL规范,不能直接写游离的SQL语句,这就是你之前遇到解析错误的原因。

内容的提问来源于stack exchange,提问作者Prem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 18:15:54