@EVOSandru6

Как в laravel 5.8 накатить миграцию и выполнять тесты из тестого .env.testing окружения?

Добрый день,

В наличие файлы с ключевой секцией:

.env:

DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=54321
DB_DATABASE=app
DB_USERNAME=app
DB_PASSWORD=secret

.env.testing:

DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=54322
DB_DATABASE=app_test
DB_USERNAME=app_test
DB_PASSWORD=secret_test

Из под докера запускаю:

docker-compose exec php-cli php artisan migrate --env=testing


Ловлю:

Nothing to migrate.

Предварительно чищу кеш:

Makefile:

clear-cache:
	$(_EXEC) $(_CLI_CTR) php artisan cache:clear
	$(_EXEC) $(_CLI_CTR) php artisan view:clear
	$(_EXEC) $(_CLI_CTR) php artisan config:cache
	$(_EXEC) $(_CLI_CTR) php artisan route:cache
	$(_SUDO) cat /dev/null > $(APP_PATH)/storage/logs/laravel.log
	$(_SUDO) rm -f $(APP_PATH)/cache/packages.php
	$(_SUDO) rm -f $(APP_PATH)/cache/services.php


Почему не подхватывается окружение?

Также в phpunit.xml ввел данные секции для проведения тестов, чтобы во первых подключаться к тестовой базе и как следствие из описанного выше - отловить ошибку:

<env name="DB_PORT" value="54322"/>
<env name="DB_DATABASE" value="app_test"/>
<env name="DB_USERNAME" value="app_test"/>
<env name="DB_PASSWORD" value="secret_test"/>


Но записи при тестах добавляются в основную таблицу. В тестовой базе таблиц нет вообще.

ПОмогите советом люди добрые)
  • Вопрос задан
  • 139 просмотров
Решения вопроса 1
Alex_Wells
@Alex_Wells
PHP/Kotlin
Потому что это окружение. В чем смысл иметь переменные окружения, если они все равно куда-то комитятся?

А если не комитятся, то смысл от двух .env файлов? env читается только из .env и ниоткуда более (и не должен).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы