Обсуждение: [GENERAL] Load a csv to remote postgresql database
Hi, I am trying to load a csv file of approx 500mb to remote postgres database. Earlier when the app server and db server were co-located, COPY command was working fine but ever since the db server is moved to a different box, the command is failing. I understand that COPY command searches the file on database server which it is not able to find and hence is throwing an error. I cannot use /COPY as it is a psql command. What options do I have to go about this. I need an urgent answer to this. Thanks in advance.
Hi
2017-03-02 7:01 GMT+01:00 priyanka raghav <priyankarag@gmail.com>:
Hi,
I am trying to load a csv file of approx 500mb to remote postgres
database. Earlier when the app server and db server were co-located,
COPY command was working fine but ever since the db server is moved to
a different box, the command is failing. I understand that COPY
command searches the file on database server which it is not able to
find and hence is throwing an error. I cannot use /COPY as it is a
psql command. What options do I have to go about this. I need an
urgent answer to this. Thanks in advance.
The psql COPY is special case for server side COPY.
if you cannot to use a psql \copy, then you have to use a special API for you programming language that can to create a bridge between client and server.
Why you cannot to use psql \copy ?
Regards
Pavel
--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general
On 3/1/2017 10:01 PM, priyanka raghav wrote: > I am trying to load a csv file of approx 500mb to remote postgres > database. Earlier when the app server and db server were co-located, > COPY command was working fine but ever since the db server is moved to > a different box, the command is failing. I understand that COPY > command searches the file on database server which it is not able to > find and hence is throwing an error. I cannot use /COPY as it is a > psql command. What options do I have to go about this. I need an > urgent answer to this. Thanks in advance. I recommend trying pgloader ... http://pgloader.io/ but if you have to do it inside a program, without shelling out to another program, then you'll have to figure out how to use the streaming interface in your chose database API, along with COPY tablename FROM STDIN [WITH options...]; (note that does not actually mean its reading from STDIN) this what psql uses for \COPY, you then read the local CSV file and send it to the appropriate streaming interface, for instance if you're using libpq, you'd use... https://www.postgresql.org/docs/current/static/libpq-copy.html#LIBPQ-COPY-SEND -- john r pierce, recycling bits in santa cruz