Пушкину не удалось инициализировать базу данных PostgreSQL - PullRequest
0 голосов
/ 01 апреля 2020

Я следую инструкции Pushkin Quickstart .

В pushkin init site я получаю сообщение об ошибке, что контейнер для test_db_1 не найден:

...
Pulling test_db (postgres:11)...
11: Pulling from library/postgres
Digest: sha256:8e096175da9b7a1d5f073e4ff0b2058a68b3110dc9c26bcee0975d25ad1c008e
Status: Downloaded newer image for postgres:11
Creating pushkin_test_db_1       ... done
Creating pushkin_message-queue_1 ... done
Creating pushkin_api_1           ... done
Creating pushkin_server_1        ... done
Starting test_db ... done
Creating local test database
No container found for test_db_1
Failed to run create database command in test_db container: 1

Если я открою Docker Рабочий стол> pushkin> pushkin_test_db_1> Журналы, я вижу

Error: Database is uninitialized and superuser password is not specified. 
You must specify POSTGRES_PASSWORD to a non-empty value for the superuser. 
For example, "-e POSTGRES_PASSWORD=password" on "docker run". 
You may also use "POSTGRES_HOST_AUTH_METHOD=trust" to allow all connections without a password. 
This is *not* recommended. See PostgreSQL documentation about "trust": 
https://www.postgresql.org/docs/current/auth-trust.html

Я попытался открыть ./pushkin.yaml, добавить туда пароль и запустить pushkin init site, но ничего не изменилось. Я предполагаю, что команда, представленная Creating pushkin_test_db_1, не предоставляет Docker пароль для базы данных. Глядя на postgres github , это поведение кажется новой "функцией".

У кого-нибудь есть рекомендации по устранению этой проблемы?

Ответы [ 3 ]

1 голос
/ 12 апреля 2020

Я думаю, что нашел исправление. Сначала я удалил все старые контейнеры docker, чтобы избежать конфликтов при попытке создания новых. Затем из нового каталога я запустил pushkin site default для инициализации файловой системы. Затем, в ./pushkin/docker-compose.dev.yml, обновите services: test_db, чтобы оно выглядело следующим образом:

  test_db:
    image: 'postgres:11'
    environment:
        POSTGRES_PASSWORD: testpassword
    ports:
      - '5432:5432'
    volumes:
      - 'test_db_volume:/var/lib/postgresql/data'

Это предоставит пароль для базы данных postgres, чтобы она не жаловалась. Похоже, что это может быть легко обновлено в источнике, так что когда pushkin site default загружает temp.zip, это изменение уже реализовано в файле yaml.

0 голосов
/ 07 апреля 2020

Команда pushkin init site выполняет загрузку всех зависимостей, необходимых для проекта pushkin. Возможно, вы захотите продолжить следующие шаги по быстрому запуску и посмотреть, все ли хорошо go.

И для этой проблемы попробуйте запустить docker-compose -f pushkin/docker-compose.dev.yml exec -T test_db psql -U postgres -c "create database test_db и docker-compose -f pushkin/docker-compose.dev.yml stop test_db, чтобы увидеть, изменится ли что-нибудь.

0 голосов
/ 03 апреля 2020

Это проблема синхронизации с CLI. Иногда просто работает «push init site» снова работает. Попробуйте, и дайте мне знать, если вы получите другую ошибку.

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