在 PHP 中导出 + 导入 PSQL Table
Export + Import PSQL Table in PHP
我在 psql 中有一种语言 table 看起来像这样。
我的目标是导出我的语言 table 并使用 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"
上下文:复制语言,第 1 行,列 ID:“1,h,Advanced Settings,Geavanceerde instellingen,Ajustes avanzados,Réglages avances,2016-11-23 14:4...”
我该如何解决这个问题?我的导出命令有问题吗?
您的导入 COPY 命令比 CSV 文件少一列。它正在尝试将您的 updated_at
列作为第二行的 code
字段。
Table def:
(code, text, nl, es, fr, created_at, updated_at)
行:
"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
我在 psql 中有一种语言 table 看起来像这样。
我的目标是导出我的语言 table 并使用 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"
上下文:复制语言,第 1 行,列 ID:“1,h,Advanced Settings,Geavanceerde instellingen,Ajustes avanzados,Réglages avances,2016-11-23 14:4...”
我该如何解决这个问题?我的导出命令有问题吗?
您的导入 COPY 命令比 CSV 文件少一列。它正在尝试将您的 updated_at
列作为第二行的 code
字段。
Table def:
(code, text, nl, es, fr, created_at, updated_at)
行:
"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