2017-02-09 11 views
0

Я использую Postgresql 9.6 COPY BINARY команды сваливать за столомОШИБКА: COPY подписи файла не распознан - Postgresql 9,6

psql -h $HOSTNAME -U $USERNAME -d $DBNAME -qAt -c "COPY (SELECT co1,col2,col3 FROM tableName) TO STDOUT WITH BINARY" > fileName.dat 

И используя следующую команду, чтобы восстановить

psql -U $USERNAME -d $DBNAME -qAt -c "COPY BINARY tableName(col1,col2,col3) FROM 'fileName.dat'" 

Я получаю следующее ошибка. ОШИБКА: подпись файла COPY не распознана.

Это нормально работало в Postgresql 9.4, я что-то пропустил.

ответ

1

Обнаружена проблема. У меня был файл ./~psqlrc, поэтому каждый раз, когда команда psql используется для его запуска, используется для добавления вывода psqlrc в файл .dat, сгенерированный, из-за которого при восстановлении ошибки происходит. ОШИБКА: подпись файла COPY не признана Так что, используя -X вариант, наконец, решил мою проблему.

самосвала Команда:

psql -h $HOSTNAME -U $USERNAME -d $DBNAME -XqAt -c "COPY (SELECT co1,col2,col3 FROM tableName) TO STDOUT WITH BINARY" > fileName.dat 

Restore Команда

psql -U $USERNAME -d $DBNAME -qAt -c "COPY BINARY tableName(col1,col2,col3) FROM 'fileName.dat'"