Re: copy file from a client app to remote postgres isntance - Mailing list pgsql-general

From Peter J. Holzer
Subject Re: copy file from a client app to remote postgres isntance
Date
Msg-id 20221109223210.tdqwqrxrxxd3wlyx@hjp.at
Whole thread Raw
In response to Re: copy file from a client app to remote postgres isntance  (Ron <ronljohnsonjr@gmail.com>)
Responses Re: copy file from a client app to remote postgres isntance  (Вадим Самохин <samokhinvadim@gmail.com>)
List pgsql-general
On 2022-11-09 12:57:23 -0600, Ron wrote:
> On 11/9/22 10:17, Peter J. Holzer wrote:
> > On 2022-11-07 14:40:40 -0600, Ron wrote:
> > > On 11/7/22 10:57, Вадим Самохин wrote:
> > >      I have an application that must copy a local file in csv format to a
> > >      postgres table on a remote host. The closest solution is this one (https://
> > >      stackoverflow.com/a/9327519/618020). It boils down to specifying a \copy
> > >      meta-command in a psql command:
> > >
> > >      psql -U %s -p %s -d %s -f - <<EOT\n here hoes a \copy meta-command \nEOT\n
> > >
> > >      and executing it. But it's quite an unnatural way to write
> > >      database code. Has anything changed in the last ten years?
> > >      Or, is there a better way to copy file contents in a remote
> > >      database?
> > >
> > >
> > > I'd write a small Python script, using the csv module to read the data and
> > > psycopg2 to load it.
> > If you use insert statements it will be significantly slower (which may
> > not matter for small files or one-off actions). If you use copy_from()
> > you don't have to parse it (but then why use Python at all?)
>
> If OP does not want to embed psql in his app, then he must find a different
> solution.  Python is such an option.

Invoking a program written in Python is just as hard (or simple) as
invoking a program written in C (psql). But that Python
program is additional code in their project which has to be first
written and then maintained.

What they probably should do is write the code in the programming
language they are already using for their app. And as I wrote just using
copy (from within their app, not from psql or a python script or
whatever) is probably the simplest solution. But since the OP chose not
to tell us what programming language or library they use, it's hard to
be more specific.

        hp

--
   _  | Peter J. Holzer    | Story must make more sense than reality.
|_|_) |                    |
| |   | hjp@hjp.at         |    -- Charles Stross, "Creative writing
__/   | http://www.hjp.at/ |       challenge!"

Attachment

pgsql-general by date:

Previous
From: Adrian Klaver
Date:
Subject: Re: "set role" semantics
Next
From: Bryn Llewellyn
Date:
Subject: Re: "set role" semantics