Использование докера в админке я не вижу импортированных данных - PullRequest
0 голосов
/ 27 октября 2018

Я создал Docker-контейнер с postgres и администратором с параметрами:

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

Мне нужно загрузить мой дамп в wprods db моего экземпляра lprods_db. Я запускаю в консоли моей ОС:

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 - это дамп sql в моем пути к ОС а также 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

Открыв adminer на http://127.0.0.1:8083/ Я не нашел ни одной таблицы в указанной базе данных: https://imgur.com/a/n6Tk4YE Я ожидал, что мои данные будут импортированы в wprods.public. Это так? Что не так?

Есть ли здесь какая-нибудь команда FLUSH?

Спасибо!

1 Ответ

0 голосов
/ 30 октября 2018

Ваш docker-compose.yml и команды, которые вы используете, кажутся полностью правильными - я запустил все с первой попытки.

Единственная кажущаяся здесь ловушка заключается в том, что вывод pg_dump ничего не знает об имени базы данных. Из документов :

Дампы сценариев - это текстовые файлы, содержащие команды 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 по умолчанию

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...