Aktywne Wpisy

stuparevic +1033
źródło: Zdjęcie z biblioteki
Pobierz
Ryksa +72
Dlaczego nie interesują mnie ludzie? W ogóle nie obchodzi mnie życie innych. Ciężko mi trworzyć relacje w pracy bo mam w------e na tych wszystkich ludzi. Co jest ze mną nie tak?





Uruchamiam projekt
docker-compose up -duruchamiana jest migracja i tworzona baza danych "app". Wszystko jest ok jeśli używam np. postmana. Ale wolę napisać testy żeby nie testować ręcznie.
Użyłem behat (test rejestracji użytkownika), odpalam komendą:
docker compose exec php vendor/bin/behati dostaję to:
[critical] Uncaught PHP Exception Doctrine\DBAL\Exception\ConnectionException: "An exception occurred in the driver: SQLSTATE[HY000] [1044] Access denied for user 'app'@'%' to database 'app_test'" at /srv/app/vendor/doctrine/dbal/src/Driver/API/MySQL/ExceptionConverter.php line 101Jak widać, kod próbuje użyć bazy danych "apptest" - co jest ok bo nie chcę testować na "produkcyjnej" (app) bazie danych. Pytanie tylko jak to ograć, jak stworzyć bazę pod testy podczas uruchamiania?
Próbowałem
docker-compose exec php bin/console --env=test doctrine:database:createale dostaje:
Could not create databaseapptestfor connection named defaultAn exception occurred while executing a query: SQLSTATE[42000]: Syntax error or access violation: 1044 Access denied for user 'app'@'%' to database 'app_test'
Macie jakieś hinty? Co robię źle?
https://pastebin.com/0E4cpk3Q - docker-compose.yml
https://pastebin.com/SvjEgcgz - docker-compose.prod.yml
https://pastebin.com/nF5VBjBH - docker-compose.override.yml
https://pastebin.com/vi1LQQb4 - docker-compose.dev.yml
Dodam, że chcę później te testy odpalać np. w github actions czy innym CI/CD.
A może macie jakieś hinty związane z testowaniem, stawianiem środowiska pod to itd.
https://pastebin.com/5V2grZd5
https://pastebin.com/bdyhsfwa
Kiedyś chyba miałem ten sam problem i go nie rozwiązałem. Po prostu uruchamiałem testy na głównej bazie i za każdym razem przed uruchomieniem testów dump'owałem bazę. Jeśli znalazłbyś przyczynę/rozwiązanie to daj znać :)
docker-compose.yml:
database:Moje rozwiązanie to dodatkowa baza
database-test:image: mysql:5.7
environment:
Jak Ci się uda to wszystko zrobić a skryptowi nie, sprawdzasz czy skrypt na pewno używa tych samych danych do logowania.
Ewentualnie kwestia potwierdzenia, że w MySQL masz użytkownika app do bazy app_test z dostępem z odpowiednich hostów (najlepiej wildcard %).
Możesz też dać migrację