迁移到agensgraph创建外部表错误

时间:2018-11-11 09:25:36

标签: postgresql agens-graph

因此,我首先看一下将PostgreSQL数据库迁移到agensgraph数据库的过程。 我正在使用手册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);

------------更新------------

我现在再次尝试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 '');

相同错误

2 个答案:

答案 0 :(得分:0)

我已经尝试使用您提到的Northwind数据集创建一个外部表,但是当您看到以下屏幕截图时,它对我来说就很好了。

我安装了Agensgraph,并尝试使用最新版本2.1.0的示例,因为我的窗口操作系统上没有Agensgraph。

enter image description here

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

答案 1 :(得分:0)

re:无法在图形架构中创建表 当您的架构与图的名称相同时,或者在与默认架构相关的其他问题上,将会出现此错误。

默认模式称为public。要检查您当前的模式,请输入

sudo apt install srvadmin-base srvadmin-storageservices srvadmin-idrac7 srvadmin-all*

如果它不是公开的,则可以使用

进行设置
select current_schema();

然后尝试创建表

set schema public;