Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony2][Symfony]Problem z updatem bazy danych
Forum PHP.pl > Forum > PHP > Frameworki
Matrix12
Witam,

prowadzę projekt w SF2 i dodałem nową encje chciałem zrobić doctrine:schema:update --force a tu błąd z informacją że jakaś tabela istnieje.. problem w tym że takiej tabeli nigdy nie utworzyłem, nie wiem skąd ją on zna. Jednak zmieniłem bazę danych na inna by dalej kontynuować no i jest problem nadal jest to samo. Nowa baza a on nadal że ta tabela istnieje.. Zrobiłem doctrine:cache:clear-metadata, doctrine:cache:clear-result ale nadal to samo. Nie wykorzystuje tej tabeli nigdzie, nawet nie wiem skąd ja on ma,
ohm
a co z doctrine:schema:validate?
Sprawdź czy nie masz w encjach w @table gdzieś zdublowanej nazwy, szczególnie w tej nowej.
Matrix12
Doctrine validate daje to : [Doctrine\DBAL\Schema\SchemaException] i że tabela istnieje. Sprawdzałem i nic.. Właśnie nie wiem dlaczego taki jest błąd..
kpt_lucek
To znaczy, że: w projekcie istnieje już ORM'owa implementacja w/w tabeli
Matrix12
Właśnie problem w tym że nie istnieje. Nie mam żadnej encji która by reprezentowała tą tabele, ba nawet w samej bazie jej nie ma..
Przeszukałem cały projekt tej frazy czy coś podobnego co mógłbym jakoś sprawdzić. Niestety nic.
kpt_lucek
Ręcznie wywal cache
Matrix12
Sprawdzę jeszcze asocjacje bo tutaj może być błąd

Pogrzebałem w asercjach i jakoś się udało nie krzyczy błędem. Problem teraz mam z peryzystencją. Problem w tym że to bardzo prosty skrypt...
Pobiera dane z zewnętrznego serwisu i zapisuje. Sprawdziłem $products jest tablicą nie jest ona pusta.. ale rekordy się nie zapisują. Próbowałem z przeniesieniem flusha to foreacha ale też nic.. wcześniej ten kod zapisywał.. Co w nim jest nie tak?


  1. foreach($products as $product){
  2. $product = new Product;
  3. $product->setName($product);
  4. $product->setCreatedAt(new \DateTime());
  5. $product->setUpdatedAt(new \DateTime());
  6. try{
  7. $em->persist($product);
  8. }catch(\Doctrine\DBAL\DBALException $e){
  9. throw new Exception($e->getMessage());
  10.  
  11.  
  12. }
  13. try{
  14. $em->flush();
  15. $em->commit();
  16. }catch(\Doctrine\DBAL\DBALException $e){
  17. $em->rollback();
  18.  
  19. }
  20. //reszta kodu
destroyerr
Trudno stwierdzić co jest nie tak, zwłaszcza, że przechwytujesz wyjątek i w żaden sposób go nie obsługujesz.
nospor
foreach($products as $product){
$product = new Product;
$product->setName($product);

Naprawde nie widzisz ze nadpisujesz zmienna $product? Rada na przyszlosc. Nazywaj zmienne roznie wink.gif
Matrix12
To jest example kod, i faktycznie tutaj dwa razy napisałem produkt. Poradziłem sobie z tym także dzięki. Problemem było połączenie z tabelą.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.