在管理员中使用docker我看不到导入的数据

时间:2018-10-27 06:14:14

标签: postgresql docker

我用postgres和管理员创建了带有选项的docker容器

lprods_db:
    image: postgres:9.6.10-alpine
    ports:
        - '5433:5432'
    restart: always
    environment: 
        POSTGRES_USER: 'postgres'
        POSTGRES_PASSWORD: '1'
        POSTGRES_DB: 'wprods'
    volumes:
        - ./init:/docker-entrypoint-initdb.d/


lprods_adminer:
    image: adminer
    restart: always
    ports:
        - 8083:8080
    links:
        - lprods_db

我需要将转储上传到lprods_db实例的wprods数据库中 我在操作系统的控制台中运行:

cat  /mnt/_work_sdb8/wwwroot/lar/lprods/__SQL/wprods_2017_10_23.sql   | docker exec -i   lprods_docker_lprods_db_1    psql -Upostgres

其中 /mnt/_work_sdb8/wwwroot/lar/lprods/__SQL/wprods_2017_10_23.sql是我的OS路径中的sql dump 和 lprods_docker_lprods_db_1-数据库容器

我看到了很长的postgres导入命令的输出,没有错误,例如:

CREATE INDEX
ALTER TABLE
CREATE INDEX
CREATE INDEX
CREATE INDEX
CREATE INDEX
CREATE INDEX
ALTER TABLE
CREATE INDEX
CREATE INDEX
CREATE INDEX
CREATE INDEX
CREATE INDEX
CREATE INDEX
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
REVOKE
REVOKE
GRANT
GRANT

通过在http://127.0.0.1:8083/打开管理员,我没有在指定的db中找到任何表:https://imgur.com/a/n6Tk4YE 我希望我的数据将被导入到wprods.public。是这样吗? 怎么了?

这里可以使用一些FLUSH命令吗?

谢谢!

1 个答案:

答案 0 :(得分:5)

您的docker-compose.yml和您使用的命令似乎完全正确-我首先尝试了一切。

这里唯一的陷阱是pg_dump的输出对数据库名称一无所知。来自docs

  

脚本转储是包含SQL命令的纯文本文件   重建数据库所需的

因此,当您通过psql还原它时,您需要明确指定目标数据库名称,在这种情况下,命令看起来像

cat /mnt/_work_sdb8/wwwroot/lar/lprods/__SQL/wprods_2017_10_23.sql | docker exec -i lprods_docker_lprods_db_1 psql -Upostgres wprods

否则,您将填充默认的postgres数据库