我有一个运行 PostgreSQL 的 Cloud SQL 实例,我的本地计算机上有一个 .csv 文件。
我创建了一个用户和一个数据库。我使用该数据库以该用户身份登录并创建了一个与我的 .csv 文件匹配的表。
我有一个 .csv 文件和一个 import.sql 文件,其中包含以下内容:
COPY <my-table-name>
FROM 'C:\<path-to>\data.csv'
WITH (FORMAT csv);
当我运行 psql 命令时:
psql -f import.sql <connection string>
我回来了:
psql:./import.sql:3: ERROR: must be superuser to COPY to or from a file
HINT: Anyone can COPY to stdout or from stdin. psql's \copy command also works for anyone.
我尝试通过作为postgres
用户来使我的用户成为“超级用户”,但我得到了这个:
psql:./add-superuser.sql:1: ERROR: must be superuser to alter superusers
显示所有用户,显示:
postgres-> \du
cloudsqladmin | Superuser, Create role, Create DB, Replication, Bypass RLS
cloudsqlagent | Create role, Create DB | {cloudsqlsuperuser}
cloudsqlreplica | Replication | {}
cloudsqlsuperuser | Create role, Create DB | {}
<my-user> | Create role, Create DB | {cloudsqlsuperuser}
postgres | Create role, Create DB | {cloudsqlsuperuser}
postgres
是 cloudsqlsuperuser,但不是“超级用户”。如何导入此 .csv 文件?
我不知道如何以用户身份登录/获取访问权限cloudsqladmin
,或者授予角色以允许导入文件。我迫切需要快速帮助。
谷歌在 Cloud Sql 的这一领域中使用 Postgres 的文档非常糟糕。它让我浑身发抖,而且非常混乱。