Найти в Дзене
Дед в IT

А вот решение еще одного бага, который возник после обновления n8n

А вот решение еще одного бага, который возник после обновления n8n Проблема: Контейнер перестал запускаться с ошибкой: There was an error initializing DB – password authentication failed for user "pguser" Оказалось, что init-скрипт для PostgreSQL, который должен был создать нерутового пользователя, не отработал, потому что контейнер уже использовал инициализированный том с базой. А скрипты из /docker-entrypoint-initdb.d выполняются только при первой инициализации.​ Решение: Подключился к контейнеру Postgres: docker compose exec postgres psql -U postgres -d n8n Вручную создал пользователя и выдал права: ```sql CREATE USER pguser WITH PASSWORD 'pguserpassword'; GRANT ALL PRIVILEGES ON DATABASE n8n TO pguser; GRANT CREATE ON SCHEMA public TO pguser; ``` В docker-compose.yml в сервисе n8n использую этого пользователя: ```text DB_TYPE=postgresdb DB_POSTGRESDB_HOST=postgres DB_POSTGRESDB_PORT=5432 DB_POSTGRESDB_DATABASE=n8n DB_POSTGRESDB_USER=pguser DB_POSTGRESDB_PASSWORD=pguserpasswor

А вот решение еще одного бага, который возник после обновления n8n

Проблема:

Контейнер перестал запускаться с ошибкой:

There was an error initializing DB – password authentication failed for user "pguser"

Оказалось, что init-скрипт для PostgreSQL, который должен был создать нерутового пользователя, не отработал, потому что контейнер уже использовал инициализированный том с базой. А скрипты из /docker-entrypoint-initdb.d выполняются только при первой инициализации.​

Решение:

Подключился к контейнеру Postgres:

docker compose exec postgres psql -U postgres -d n8n

Вручную создал пользователя и выдал права:

```sql

CREATE USER pguser WITH PASSWORD 'pguserpassword';

GRANT ALL PRIVILEGES ON DATABASE n8n TO pguser;

GRANT CREATE ON SCHEMA public TO pguser;

```

В docker-compose.yml в сервисе n8n использую этого пользователя:

```text

DB_TYPE=postgresdb

DB_POSTGRESDB_HOST=postgres

DB_POSTGRESDB_PORT=5432

DB_POSTGRESDB_DATABASE=n8n

DB_POSTGRESDB_USER=pguser

DB_POSTGRESDB_PASSWORD=pguserpassword

```

После этого n8n нормально поднялся, миграции прошли, и всё заработало.

Если у тебя похожая ошибка с password authentication failed для не-root пользователя в связке n8n + Postgres — проверь, реально ли этот пользователь существует в базе и есть ли у него права, а не надейся только на init-скрипты Docker.​

#n8n #postgres #docker #devops #selfhosted #linux