Błąd podczas wykonywania bin/console make:migration

Błąd podczas wykonywania bin/console make:migration

Wątek przeniesiony 2024-03-25 09:40 z Inne języki programowania przez Adam Boduch.

EVOMARKET
  • Rejestracja:12 miesięcy
  • Ostatnio:3 miesiące
  • Postów:13
0

Witam,
Od dłuższego czasu nie mogę sobie poradzić z tym problem. Utworzyłem projekt SYMFONY stworzyłem kontenery z serwerem CADDY ;PHP;MYSQL oraz dodatkowo symfony. Wszystkie są w tej samej sieci. Niby wszystko jest ok. łączę się z bazą danych z kontenera mysql jako root. Połączenie z bazą poprzez interface VS code jest też ok. Tworzę testową encję. Jednak gdy chcę wykonać migrację dostaję taki błąd

Kopiuj
[critical] Error thrown while running command "make:migration". Message: "An exception occurred in the driver: SQLSTATE[HY000] [2002] Connection refused"

W logach nic konkretnego nie mogę znaleźć.
Czy ktoś może już spotkał się z takim błędem ?

edytowany 1x, ostatnio: Riddle
jurek1980
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 5 godzin
  • Postów:3460
0

Samo make:migration tylko tworzy migrację, nie wykonuje jej.
W przypadku problemu z połączeniem do DB z aplikacji do sprawdzenia pozostaje:
jaki plik env. używasz i czy masz w nim poprawne dane.
Skoro serwer odpowiada to komunikacja jakaś jest. Ale możesz np. mieć na bazie jakieś restrykcje co do adresów IP dla użytkownika.
Zacząłbym od plików .env

EVOMARKET
  • Rejestracja:12 miesięcy
  • Ostatnio:3 miesiące
  • Postów:13
0
jurek1980 napisał(a):

Samo make:migration tylko tworzy migrację, nie wykonuje jej.
W przypadku problemu z połączeniem do DB z aplikacji do sprawdzenia pozostaje:
jaki plik env. używasz i czy masz w nim poprawne dane.
Skoro serwer odpowiada to komunikacja jakaś jest. Ale możesz np. mieć na bazie jakieś restrykcje co do adresów IP dla użytkownika.
Zacząłbym od plików .env

Oczywiście w pliku .env ma url z danymi zgodnymi z tym co jest w kontenerze

Kopiuj
 DATABASE_URL="mysql://symfony:symfony@127.0.0.1:3306/symfony?serverVersion=8.0.32&charset=utf8mb4"

właśnie tego nie rozumiem , zdaję sobie sprawę że make:migration tworzy jedynie sql-a nie wykonuje migracji do bazy dlatego nie rozumiem tego błędu.
Próbowałem też na innych portach np 3307 ;3316 bez powodzenia.

edytowany 3x, ostatnio: Riddle
jurek1980
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 5 godzin
  • Postów:3460
0

A nie masz nadpisanych danych w innym pliku .env np .env.locale czy tak .env.dev ? W jakim trybie uruchamiasz aplikację?

EVOMARKET
  • Rejestracja:12 miesięcy
  • Ostatnio:3 miesiące
  • Postów:13
0

Szukałem ale nie znajduję innego pliku env jest tylko jeden w katalogu głównym projektu (.env) . Uruchamiam w trybie developerskim.

jurek1980
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 5 godzin
  • Postów:3460
0

Sprawdź uprawnienia dla danego usera.
https://stackoverflow.com/questions/16287559/mysql-adding-user-for-remote-access
Oczywiście nie musisz tworzyć nowego.
Bo w pierwszym poście pisałeś, że łączysz się jako root testowo. A tu masz innego użytkownika.

edytowany 1x, ostatnio: jurek1980
RB
  • Rejestracja:ponad rok
  • Ostatnio:około 9 godzin
  • Postów:10
0
  1. kontenery masz lokalnie, czy na serwerze?
  2. komende do migracji odpalasz bedac w kontenerze czy poza?
EVOMARKET
  • Rejestracja:12 miesięcy
  • Ostatnio:3 miesiące
  • Postów:13
0

Kontenery mam na Docker desctop komendę odpalam będąc wewnątrz kontenera php.
Wrzuciłem to na gita
https://github.com/EVOMARKET/projekt12.git

edytowany 1x, ostatnio: EVOMARKET
RB
  • Rejestracja:ponad rok
  • Ostatnio:około 9 godzin
  • Postów:10
0

w takim razie musisz zmienic hostname w zmiennej srodowiskowej DATABASE_URL,

przykladowo majac kontenery:

  • caddy
  • php
  • db (ma uruchomiona baze danych na porcie 3306)

i jesli one sa w tej samej sieci, to wchodzac na kontener z php, aby moc polaczyc sie z kontenerem z db, hostname'em nie bedzie localhost ani 127.0.0.1 (poniewaz te sa z konteneru php), a hostname'em bedzie nazwa kontenera do ktorego chcesz sie polaczyc (np. db)

wiec zmienna DATABASE_URL powinna wygladac:

Kopiuj
DATABASE_URL="mysql://symfony:symfony@db:3306/symfony?serverVersion=8.0.32&charset=utf8mb4"

dla testu mozesz sobie tez zawsze zrobic poleceniem curl czy jest polaczenie miedzy kontenerami:

Kopiuj
curl -I http://db:3306

jak nie bedzie polaczenia (np network nie jest dobrze polaczony), to powinien byc blad: curl: (6) Could not resolve host:

EVOMARKET
  • Rejestracja:12 miesięcy
  • Ostatnio:3 miesiące
  • Postów:13
0

Dziękuję za odpowiedź ale chyba niestety to jeszcze nie to
zmieniłem DATABASE_URL na

Kopiuj
DATABASE_URL="mysql://symfony:symfony@db:3306/symfony?serverVersion=8.0.32&charset=utf8mb4"

Usunąłem obrazy dockera, zbudowałem i postawiłem na nowo. Wchodzę do kontenera php , podaję komendę

Kopiuj
curl -I http://db:3306

i mam odpowiedź

Kopiuj
curl: (6) Could not resolve host: db
edytowany 2x, ostatnio: Riddle
Riddle
@EVOMARKET: Staraj się formatować treści które dodajesz. Dla elementów takich jak zmienne środowiskowe użyj `DATABASE_URL`, a dla bloków z odpowiedzią z programów użyj ```.
RB
  • Rejestracja:ponad rok
  • Ostatnio:około 9 godzin
  • Postów:10
0

zobacz jeszcze jaka masz nazwe kontenera z baza (polecenie docker ps), bo jesli odpalasz poprzez docker compose, to wtedy nazwa kontenera jest zazwyczaj nazwa_katalogu_nazwa_kontenera_w_docker_compose_1

jurek1980
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 5 godzin
  • Postów:3460
0

Nazwę kontenera według wklejnoego na GH kodu masz:

Kopiuj
 mysql:
    image: mysql:8.0

Zamiast db powinno być mysql.
Połącz się na roota tak jak łączysz się gdzieś indziej.

edytowany 1x, ostatnio: jurek1980
RB
  • Rejestracja:ponad rok
  • Ostatnio:około 9 godzin
  • Postów:10
0

nie zauwayzlem linku do repo, sory

tak jak mówi @jurek1980 nazwa kontenera bedzie mysql, albo nawet w sumie projekt12_mysql_1 (popraw mnie jesli sie myle), wiec w env powinienes miec

Kopiuj
DATABASE_URL="mysql://symfony:symfony@projekt12_mysql_1:3306/symfony?serverVersion=8.0.32&charset=utf8mb4

a image: mysql:8.0 wskazuje bazowy image skad ma brac, info o nazwie kontenera idzie linijke wyzej znalezc

Kopiuj
  mysql: # <--
    image: mysql:8.0
jurek1980
tak, dobra linijka. Mi parser potraktował to jako język więc nie wyświetlił.
EVOMARKET
  • Rejestracja:12 miesięcy
  • Ostatnio:3 miesiące
  • Postów:13
0

Panowie nawet nie wiecie jak się cieszę. Jest success! Wielkie dzięki !! 😀

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)