问题:
将架构从AWS Postgres导入到Gcloud postgres时出现以下错误。
错误:
Import failed:
SET
SET
SET
SET
SET set_config
------------
(1 row)
SET
SET
SET
CREATE SCHEMA
SET
SET
CREATE TABLE
ERROR: syntax error at or near "AS" LINE 2: AS integer ^
Import error: exit status 3
我从AWS postgres导出数据时使用了--no-acl --no-owner --format=plain
pg_dump -Fc -n <schema_name> -h hostname -U user -d database --no-acl --no-owner --format=plain -f data.dump
我能够在使用相同方法导出的gcloud sql中导入某些架构,但对于某些其他相似架构却出错。表具有地理空间信息,并且postgis已安装在目标数据库中。
在这里寻找一些快速帮助。
答案 0 :(得分:1)
我的解决方案:
基本上,我有一个来自postgres 10.0的数据转储文件,其表的PK具有“序列”。显然,Gcloud postgres 9.6无法正确读取序列以及其他表数据转储到文件中的方式。那就是它给出错误“ AS整数”的地方。另外,最后我确实在转储文件中找到了此快递,这是我之前找不到的。因此,我需要过滤掉此位。
创建序列sample.geofences_id_seq
AS integer <=====had to filter out this bit to get it working
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
不确定是否有人遇到了这个问题,但是我遇到了这个解决方案,但对我来说却没有失去任何功能。
很高兴在这里获得其他更好的解决方案。
答案 1 :(得分:0)
The original answer是正确的,并且对general case也给出了类似的答案。选项包括:
cat dump10.sql | sed -e '/AS integer/d' > dump96.sql