我有一个场景,一个特定的数据集来自一个CSV,我需要允许一个非开发人员点击PG管理并更新这个数据集。我希望能够将这个CSV放在主机系统的映射文件夹中,然后使用PG Admin运行COPY命令。到目前为止,PG Admin告诉我:
错误:无法打开文件“/var/lib/pgadmin/data-files/Somedata.csv”:没有这样的文件或目录
到目前为止,以下是我的步骤,以及一次精神健康检查:
docker volume create --name=data-files
docker run -e PGADMIN_DEFAULT_EMAIL="pgadmin@example.com" -e PGADMIN_DEFAULT_PASSWORD=some_pass -v data-files:/var/lib/pgadmin/data-files -d -p 5050:80 --name pgadmin dpage/pgadmin4
docker volume inspect data-files --format '{{.Mountpoint}}'
/app/docker/volumes/data-files/_data
docker cp ./updated-data.csv pgadmin:/var/lib/pgadmin/data-files现在,我认为PG管理员可以看到updated-data.csv,所以我尝试复制,我知道它在我的开发系统中本地工作,PG是在裸金属系统上工作的:
COPY foo.bar(
...
)
FROM '/var/lib/pgadmin/data-files/updated-data.csv'
DELIMITER ','
CSV HEADER
ENCODING 'windows-1252';这里有什么明显的错误吗?当我做码头cp时,没有反馈给stdout。没有错误,没有提到成功或杂乱无章什么的。
发布于 2022-05-31 18:54:29
看起来,您认为文件应该在pgadmin容器中,但是要复制的文件必须是postgres容器中的,这样您运行的查询就会找到该文件。我建议您将该文件复制到postgres容器:
docker cp <path_from_your_local>/file.csv <postgres_container_name>:/file.csv然后,在pgadmin的查询工具中,您可以无问题地进行复制!
我希望这对其他人的帮助。
https://stackoverflow.com/questions/68535722
复制相似问题