从PostgeSQL执行pg_dump
后,我尝试将.sql
文件导入CockroachDB,但收到以下错误:
ERROR: unknown variable: "STATEMENT_TIMEOUT"
ERROR: unknown variable: "LOCK_TIMEOUT"
ERROR: unknown variable: "IDLE_IN_TRANSACTION_SESSION_TIMEOUT"
SET
SET
ERROR: unknown variable: "CHECK_FUNCTION_BODIES"
SET
ERROR: unknown variable: "ROW_SECURITY"
SET
ERROR: unknown variable: "DEFAULT_TABLESPACE"
ERROR: unknown variable: "DEFAULT_WITH_OIDS"
CREATE TABLE
ERROR: syntax error at or near "OWNER"
任何指导?
答案 0 :(得分:2)
CockroachDB特别支持使用psql
,它支持COPY
命令(比批量INSERT
语句更快)。
你需要做两件事:
生成.sql
文件后,您需要在导入之前执行一些编辑步骤:
CREATE TABLE
和COPY
语句之外,从文件中删除所有语句。手动将表格的PRIMARY KEY
约束添加到CREATE TABLE
语句中。
这必须手动完成,因为PostgreSQL在创建表后尝试添加主键,但CockroachDB要求在创建表时定义主键。
重新格式化文件后,您可以通过psql
$ psql -p [port] -h [node host] -d [database] -U [user] < [file name].sql
作为参考,CockroachDB使用以下默认值:
[port]
: 26257 [user]
: root