2016-12-01 2 views
-1

У меня есть таблицы языков в psql, которые выглядят так.Экспорт + импорт таблицы PSQL в PHP

enter image description here


Моя цель состоит в том, чтобы экспортировать свою таблицу языков и импорта, что еще в с помощью PHP.

PHP

Экспорт

shell_exec('psql -E -U postgres -d portal -c "COPY languages TO \'/Applications/MAMP/htdocs/code/site/portal/public/csv/languages.csv\' DELIMITER \',\' "'); 

Я получил languages.csv успешно экспортировать.

Если я его открываю, он содержит это.

1,h,Advanced Settings,Geavanceerde instellingen,Ajustes avanzados,Réglages avancés,2016-11-23 14:41:25,2016-11-23 14:41:25 

Импорт

Теперь я двигаюсь к моему импорта, вот что я сделал

shell_exec('psql -E -U postgres -d portal -c "COPY languages (code, text, nl, es, fr, created_at, updated_at) FROM \'/Applications/MAMP/htdocs/code/site/portal/public/csv/languages.csv\' DELIMITER \',\' csv;"'); 

я продолжал получать

ERROR: invalid input syntax for integer: "1,h,Advanced Settings,Geavanceerde instellingen,Ajustes avanzados,Réglages avancés,2016-11-23 14:41:25,2016-11-23 14:41:25" 

КОНТЕКСТ: Языки COPY, строка 1, идентификатор столбца: «1, h, Advanced Sett ь, Geavanceerde instellingen, Ajustes avanzados, Réglages avancés, 2016-11-23 14: 4 ...»


Вопрос

Как это исправить?

Это что-то с моей командой экспорта?

Как бы это сделать и отладить это дальше?


Я открываю любые предложения на данный момент.

Любые подсказки/предложения/помощь по этому поводу будут очень благодарны!

ответ

1

Ваша команда COPY для импорта имеет один меньше столбца, чем файл CSV. Он пытается захватить ваш столбец updated_at как поле code второй строки.

Таблица Защита:

(code, text, nl, es, fr, created_at, updated_at) 

Row:

"1,h,Advanced Settings,Geavanceerde instellingen,Ajustes avanzados,Réglages avancés,2016-11-23 14:41:25,2016-11-23 14:41:25" 

Карта:

code - 1 
text - "h" 
nl - "Advanced Settings" 
es - "Geavanceerde instellingen" 
fr - "Ajustes avanzados" 
created_at - "Réglages avancés" 
updated_at - 2016-11-23 14:41:25 
code2 - 2016-11-23 14:41:25 // <-- Problem 
+0

Спасибо за ваше исправление. Обновление до этого '(id, code, text, nl, es, fr, created_at, updated_at)' теперь работает как шарм. – ihue

Смежные вопросы