Thread: running COPY with remote DB and local file

running COPY with remote DB and local file

From
Majid Azimi
Date:
hi guys,

I'm going to run COPY from a shell script. But this script is running
on my local PC. The database is not local. Now which permission should
the output file?This is the command:

psql -U <user> -h <remote_ip> -d testdb -c "COPY (SELECT * FROM
main.data) TO /home/backup.sql WITH CSV HEADER;"

postgresql doc says:

Files named in a COPY command are read or written directly by the
server, not by the client application. Therefore, they must reside on
or be accessible to the database server machine, not the client. They
must be accessible to and readable or writable by the PostgreSQL user
(the user ID the server runs as), not the client.

I'm confused about permissions of the output when the DB is remote and
the output file is local.

Re: running COPY with remote DB and local file

From
Michael Wood
Date:
On 6 March 2012 11:08, Majid Azimi <majid.merkava@gmail.com> wrote:
> hi guys,
>
> I'm going to run COPY from a shell script. But this script is running
> on my local PC. The database is not local. Now which permission should
> the output file?This is the command:
>
> psql -U <user> -h <remote_ip> -d testdb -c "COPY (SELECT * FROM
> main.data) TO /home/backup.sql WITH CSV HEADER;"
>
> postgresql doc says:
>
> Files named in a COPY command are read or written directly by the
> server, not by the client application. Therefore, they must reside on
> or be accessible to the database server machine, not the client. They
> must be accessible to and readable or writable by the PostgreSQL user
> (the user ID the server runs as), not the client.
>
> I'm confused about permissions of the output when the DB is remote and
> the output file is local.

No you have misunderstood the documentation.

What it is trying to say is that your COPY command will try to create
a file ON THE SERVER called /home/backup.sql.

--
Michael Wood <esiotrot@gmail.com>