如果我做錯了什麼,我不確定這是否可行,因為我對 Docker 還是很陌生。基本上,我想將 PostgreSQL docker 容器內的查詢結果作為 csv 文件導出到我的本地機器。
這是我到目前為止的地方。首先,我使用以下命令運行我的 PostgreSQL docker 容器:
sudo docker run --rm --name pg-docker -e POSTGRES_PASSWORD=something -d -p 5432:5432 -v $HOME/docker/volumes/postgres:/var/lib/postgresql/data postgres
然後我使用 docker exec 訪問 docker 容器以運行 PostgreSQL 命令,該命令會將查詢結果復製到具有指定位置的 csv 文件,如下所示:
\copy (select id,value from test) to 'test_1.csv' with csv;
我認為,應該將查詢結果導出為一個名為test_1.csv在本地機器上的CSV文件,但我找不到我的本地機器上的文件的任何地方,還檢查這兩個目錄的:$HOME/docker/volumes/postgres
;/var/lib/postgresql/data postgres
您可以將數據導出到STDOUT
並將結果通過管道傳輸到客戶端計算機中的文件:
docker exec -it -u database_user_name container_name \
psql -d database_name -c "COPY (SELECT * FROM table) TO STDOUT CSV" > output.csv
-c
告訴 psql 您在建立連接時執行給定的 SQL 語句。
所以你的命令應該是這樣的:
docker exec -it -u postgres pgdocker \
psql -d yourdb -c "COPY (SELECT * FROM test) TO STDOUT CSV" > test_1.csv
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句