• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Laravel, automatyczna zmiana wartości domyślnych w bazie danych doctrine/dbal

0 głosów
62 wizyt
pytanie zadane 16 marca w PHP, Symfony, Zend przez Grzegorz Mikina Gaduła (3,370 p.)
Mam takie pytanie, potrzebuję dodać takie rozszerzenie do composer.json a mianowicie doctrine/dbal v.2.4.2 bo nie mogę przeprowadzić migracji. I jak w cmd daję composer install to wszystko się ładnie ładuje i wyświetla mi sukces, później jak chcę dać php artisan migrate , wyświetla mi się błąd że brakuję właśnie dodatku doctrine/dbal. Czy ktoś się spotkał z takim problemem? SKąd ten błąd skoro ja to rozszerzenie mam zainstalowane.
komentarz 22 marca przez Arkadiusz Waluk Ekspert (245,570 p.)

Przecież masz kompletnie inny błąd. Błędu o braku Doctrine DBAL już nie ma, czyli teraz jest dobrze zainstalowany.

Migrating: 2019_03_21_011314_add_foreign_doctors_to_visits

...

Illuminate\Database\QueryException  : SQLSTATE[HY000]: General error: 1005 Can't create table `system`.`#sql-2734_625` (errno: 150 "Foreign key constraint is incorrectly formed") (SQL: alter table `visits` add constraint `visits_doctor_id_foreign` foreign key (`doctor_id`) references `users` (`id`))

Prawdopodobnie kolumna doctor_id w visits ma inny typ niż kolumna id w users. Bez kodu tych migracji ciężko powiedzieć.

komentarz 22 marca przez Grzegorz Mikina Gaduła (3,370 p.)
Ogólnie rzecz biorąc wszyscy użytkownicy są przechowywani w jednej tabeli Users. Users był z początku BigIntem , doctor_id był intem. Nie wiem czy to do końca poprawne działanie, ale zmieniłem atrybut ręcznie. A czy doctrine/dbal nie powinien tego problemu sam rozwiązać ?
komentarz 22 marca przez Grzegorz Mikina Gaduła (3,370 p.)
Raczej bym stawiał na jakąś literówkę w nazwie klucza obcego.
komentarz 22 marca przez Arkadiusz Waluk Ekspert (245,570 p.)
Doctrine samo niczego nie rozwiązuje, umożliwia tylko to że można zrobić ->change() w migracji, czyli zmodyfikować już istniejącą kolumnę. Jak zmieniłeś ręcznie na bazie to też może być (ale wypadałoby i poprawić w migracji, aby przy kolejnym postawieniu od zera działało).

Ja nadal będę obstawiał inne typy dla łączonych kolumn, jakby była literówka to nie mógłby ich znaleźć i komunikat byłby inny.
1
komentarz 22 marca przez Grzegorz Mikina Gaduła (3,370 p.)
$table->integer('patient_id')->unsigned()->change(); W tym wierszu był błąd.
$table->integer('patient_id')->unsigned('')->change(); <<< ---- coś takiego było i to był jeden z problemów, drugi problem to ręczne ingerowanie w tabele w bazie danych.
Problem rązwiązano następująco. Usunąłem całą bazę danych i przeprowadziłem ponownie całą migracje.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 46 wizyt
pytanie zadane 19 stycznia w PHP, Symfony, Zend przez kasia101 Początkujący (290 p.)
+1 głos
2 odpowiedzi 130 wizyt
pytanie zadane 18 lipca 2018 w PHP, Symfony, Zend przez Wojtek85 Nowicjusz (190 p.)
0 głosów
1 odpowiedź 158 wizyt
Porady nie od parady
Zadając pytanie postaraj się o poprawną pisownię i czytelne formatowanie tekstu.Kompozycja

63,266 zapytań

109,521 odpowiedzi

228,793 komentarzy

43,448 pasjonatów

Przeglądających: 164
Pasjonatów: 8 Gości: 156

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...