免责声明:不是在谈论this。
当我进入实时Docker容器中时,如何从\copy
执行psql
命令?
[当我尝试\copy table from '/home/Snow/Documents/table.csv' with delimiter as ',' csv header;
我收到错误:
没有这样的文件或目录
我应该写其他路径吗?
[您可以使用以下命令从psql
从容器外部导入文件:
$ cat table.csv | psql -h docker_container -d db -c \
"COPY table FROM STDIN WITH DELIMITER ',' CSV"
docker_container
postgres.conf
文件中进行更改:例如listen_addresses = '*'
收听所有外部连接。您将不得不将文件复制到Docker容器或挂载目录。
要复制文件,请遵循您链接到的问题中的过程,例如:
docker cp /home/Snow/Documents/table.csv your_container:/
然后,可以从容器中导入以访问文件:
\copy table from '/table.csv' with delimiter as ',' csv header;
或者,当您创建容器时,可以使用-v选项添加一个卷,例如:
docker run -v /home/Snow/Documents:/data postgres
然后您的Documents目录将位于/ data,允许您像这样导入:
\copy table from '/data/table.csv' with delimiter as ',' csv header;