YII 2 не удается подключиться к бд при миграции
Зашел в контейнер и при вводе команды
php yii migrate
получаю следующую ошибку
Yii Migration Tool (based on Yii v2.0.28)
Exception 'yii\db\Exception' with message 'SQLSTATE[08006] [7] could not connect to server: Connection refused
Is the server running on host "127.0.0.1" and accepting
TCP/IP connections on port 5432?'
in /application/vendor/yiisoft/yii2/db/Connection.php:635
Stack trace:
#0 /application/vendor/yiisoft/yii2/db/Connection.php(1015): yii\db\Connection->open()
#1 /application/vendor/yiisoft/yii2/db/Connection.php(1002): yii\db\Connection->getMasterPdo()
#2 /application/vendor/yiisoft/yii2/db/Schema.php(462): yii\db\Connection->getSlavePdo()
#3 /application/vendor/yiisoft/yii2/db/Connection.php(894): yii\db\Schema->quoteValue('migration')
#4 /application/vendor/yiisoft/yii2/db/pgsql/Schema.php(464): yii\db\Connection->quoteValue('migration')
#5 /application/vendor/yiisoft/yii2/db/pgsql/Schema.php(192): yii\db\pgsql\Schema->findColumns(Object(yii\db\TableSchema))
#6 /application/vendor/yiisoft/yii2/db/Schema.php(754): yii\db\pgsql\Schema->loadTableSchema('migration')
#7 /application/vendor/yiisoft/yii2/db/Schema.php(193): yii\db\Schema->getTableMetadata('{{%migration}}', 'schema', true)
#8 /application/vendor/yiisoft/yii2/console/controllers/MigrateController.php(211): yii\db\Schema->getTableSchema('{{%migration}}', true)
#9 /application/vendor/yiisoft/yii2/console/controllers/BaseMigrateController.php(874): yii\console\controllers\MigrateController->getMigrationHistory(NULL)
#10 /application/vendor/yiisoft/yii2/console/controllers/BaseMigrateController.php(167): yii\console\controllers\BaseMigrateController->getNewMigrations()
#11 [internal function]: yii\console\controllers\BaseMigrateController->actionUp(0)
#12 /application/vendor/yiisoft/yii2/base/InlineAction.php(57): call_user_func_array(Array, Array)
#13 /application/vendor/yiisoft/yii2/base/Controller.php(157): yii\base\InlineAction->runWithParams(Array)
#14 /application/vendor/yiisoft/yii2/console/Controller.php(164): yii\base\Controller->runAction('', Array)
#15 /application/vendor/yiisoft/yii2/base/Module.php(528): yii\console\Controller-runAction('', Array)
#16 /application/vendor/yiisoft/yii2/console/Application.php(180): yii\base\Module->runAction('migrate', Array)
#17 /application/vendor/yiisoft/yii2/console/Application.php(147): yii\console\Application->runAction('migrate', Array)
#18 /application/vendor/yiisoft/yii2/base/Application.php(386): yii\console\Application->handleRequest(Object(yii\console\Request))
#19 /application/yii(20): yii\base\Application->run()
#20 {main}
Собственно сам config/db.php:
<?php
return [
'class' => 'yii\db\Connection',
'dsn' => 'pgsql:host=127.0.0.1;port=5432;dbname=admin_panel',
'username' => 'root',
'password' => 'root',
'charset' => 'utf8',
Также пробовал указать адрес хоста как
localhost
собственно сам docker-compose
version: "3.1"
services:
postgres:
image: postgres:11.1-alpine
container_name: admin-panel-postgres
working_dir: /application
volumes:
- ./basic/web/:/application
environment:
- POSTGRES_USER=root
- POSTGRES_PASSWORD=root
- POSTGRES_DB=admin_panel
ports:
- "5432:5432"
webserver:
image: nginx:alpine
container_name: admin-panel-webserver
working_dir: /application
volumes:
- ./basic/:/application
- ./phpdocker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf
ports:
- "80:80"
php-fpm:
build: phpdocker/php-fpm
container_name: admin-panel-php-fpm
working_dir: /application
volumes:
- ./basic/:/application
- ./phpdocker/php-fpm/php-ini-overrides.ini:/etc/php/7.4/fpm/conf.d/99-overrides.ini
Ответы (1 шт):
Автор решения: V Sikora
→ Ссылка
Да, собственно, как заметил Blacknife в качестве хоста необходимо указывать имя сервиса БД из docker-compose