迁移到agensgraph创建外部表错误

问题描述 投票:0回答:2

所以,我首先看一下将PostgreSQL数据库迁移到agensgraph db。我正在使用手册https://bitnine.net/wp-content/uploads/2016/11/AgensGraph_Quick_Guide.pdf

首先导出为csv:

SET CLIENT_ENCODING TO 'utf8';
\COPY samples.samples TO 
'C:\Users\garyn\Documents\graph_migration\pg_csv\samples_samples.csv' 
WITH DELIMITER E'\t' CSV;

在第20页,我按照第一步,创建外表:

CREATE EXTENSION file_fdw;
CREATE SERVER import_server FOREIGN DATA WRAPPER file_fdw; 
CREATE FOREIGN TABLE vlabel_profile ( id graphid, properties text) SERVER import_server 
OPTIONS( FORMAT 'csv', HEADER 'false', 
FILENAME 'C:\Users\garyn\Documents\graph_migration\pg_csv\samples_samples.csv', 
delimiter E'\t');

错误:无法在图形模式SQL状态:XX000中创建表

现在,我没有设置任何列名(如header = false),我没有更改id graphid, properties text,因为手册说它正在设置表,但是它说明了文件目录,任何想法如何通过这个错误?我又回到了一个菜鸟。

接下来的步骤将是:

CREATE FOREIGN TABLE elabel_profile ( id graphid, start graphid, "end" graphid, properties text) SERVER import_server OPTIONS( FORMAT 'csv', HEADER 'false', FILENAME '/path/file.csv', delimiter E'\t');

然后执行导入

CREATE VLABEL test_vlabel; LOAD FROM vlabel_profile AS profile_name CREATE (a:test_vlabel =row_to_json(profile_name)::jsonb);

CREATE ELABEL test_elabel; LOAD FROM elabel_profile AS profile_name MATCH (a:test_vlabel), (b:test_vlabel) WHERE (a).id::graphid = (profile_name).start AND (b).id::graphid = (profile_name).end CREATE (a)-[:test_elabel]->(b);

------------ UPDATE ------------

我现在正在尝试使用northwind数据集,再次遵循agens教程:https://bitnine.net/tutorial/english-tutorial.html

DROP GRAPH northwind CASCADE;
CREATE GRAPH northwind;
SET graph_path = northwind;
DROP SERVER northwind;
CREATE SERVER northwind FOREIGN DATA WRAPPER file_fdw;

CREATE FOREIGN TABLE categories (
CategoryID int,
CategoryName varchar(15),
Description text,
Picture bytea
) 
SERVER northwind
OPTIONS (FORMAT 'csv', HEADER 'true', FILENAME 'D:\northwind\categories.csv', delimiter ',', quote '"', null '');

同样的错误

postgresql agens-graph
2个回答
0
投票

我试图用你提到的northwind数据集创建一个外表,但是当你看到下面的屏幕截图时,它对我来说效果很好。

我安装了agensgraph并尝试了最新版本2.1.0的样本,因为我的窗口操作系统上没有agensgraph。

enter image description here

如果您让我知道您正在使用的agensgraph版本以及您如何访问agensgraph,我将能够为您提供更多帮助。


0
投票

re:无法在图形模式中创建表格当您的模式与图形名称相同时,您将获得此错误 - 或者存在与默认模式相关的其他一些问题。

默认架构称为public。要检查当前架构,请输入

select current_schema();

如果它不公开,您可以设置它

set schema public;

然后尝试创建一个表

create table mytable(id int);
© www.soinside.com 2019 - 2024. All rights reserved.