2013-01-17 15 views
9

Problem

Hi, I "m pracy z przyjacielem w projekcie Symfony2 Pracuje na komputerze z systemem Windows i jestem na moim Macu skonfigurowaliśmy projektu i zbudował model bazy danych/podmiotów (kod pierwszy) na swoim komputerze.Teraz chciałem rozpocząć pracę nad nim również, więc zrobiliśmy SQL głupi do mojego localhost.Modyfikowałem parametry parameters.yml, aby dopasować moje ustawienia. można połączyć się z serwerem Ale gdy próbuję otworzyć stronę w którym używana jest baza danych i uzyskać ten błąd.Symfony2: tabela bazowa lub widok nie znaleziono:.. 1146

An exception occurred while executing 'SELECT t0.id AS id1, t0.name AS name2, t0.bigimage AS bigimage3, t0.smallimage AS smallimage4, t0.info AS info5, t0.city_id AS city_id6 FROM District t0':

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'socialgeogroep6.District' doesn't exist 500 Internal Server Error - DBALException 1 linked Exception: PDOException »

żeby była jasność , strona działa normalnie na swoim komputerze; on dostaje dane tak, jak być powinno.


Pytanie

Co może być problemem? Przeglądałem mój PHPmyAdmin raz za razem i baza danych jest tam ze wszystkimi polami i danymi ...
(screen: http://gyazo.com/4a0e5f1ee6b1e29d2d277df5fc0d8aac) Naprawdę nie mogę sobie wyobrazić, jaki jest problem.

Mam nadzieję, że ktoś może nam pomóc!

+0

Tak więc, aby było jasne, przeglądarka jest podłączenie do serwera WWW na komputerze, który z kolei próbuje połączyć się z RDBMS na twoim komputerze (ten sam RDBMS, z którym związany jest zrzut ekranu phpMyAdmin)? Potwierdź adres URL wyświetlany na pasku adresu przeglądarki, gdy pojawi się ten błąd, oraz parametry konfiguracji/połączenia bazy danych w aplikacji. – eggyal

+0

Tak, projekt działa na localhost z MAMP. (na moim Macu uruchamia XAMP). Baza danych jest lokalną bazą danych mySQL. –

+0

Jaka jest ustawiona Twoja nazwa instalacji MySQL ['lower_case_table_names'] (http://dev.mysql.com/doc/en/server-system-variables.html#sysvar_lower_case_table_names)? 'POKAŻ ZMIENNY JAK" lower_case_table_names''. I na jakim systemie plików przechowywane są twoje pliki danych? – eggyal

Odpowiedz

13

Jest to prawdopodobnie sprawa przypadku. Masz tabelę district w bazie danych, ale doktryna prosi o tabelę District.

Powinieneś skonfigurować doktrynę, aby używać małej nazwy tabeli. Zapoznaj się z dokumentacją doktryną http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/basic-mapping.html#persistent-classes, aby dowiedzieć się, jak to zrobić.

+0

Rozróżnianie wielkości liter MySQL wynika z systemu plików ... i HFS + jest (zazwyczaj) nieczułe na wielkość liter. – eggyal

+0

To załatwiło sprawę! Czytałem także, co @eggyal powiedział, że nie ma znaczenia na Macu, dlatego nie myśleliśmy, że to będzie problem. Ale najwyraźniej tak było. Dzięki Venu i jaja za pomoc! –

1

nazwa tabeli case WYDANIE

socialgeogroep6.District 

Powinno być socialgeogroep6.district jak na zrzucie ekranu. Sprawdź adnotację podmiotu.

+0

Rozróżnianie wielkości liter MySQL jest zgodne z systemem plików ... i HFS + jest (zwykle) nieczułe na wielkość liter. – eggyal

4

Po prostu miałem dokładnie ten sam problem, ponieważ piszę kod w systemie Windows i muszę go wdrożyć na Linuksie.

Rozwiązaniem jest dodanie w config.yml linii:

doctrine: 
    orm: 
     naming_strategy: doctrine.orm.naming_strategy.underscore 
+0

Ten nie zadziałał ze mną. – Abdel5

+0

To działało dla mnie podczas próby skonfigurowania go z systemu Windows na Linux (konfiguracja cloud9). Dziękuję Ci –

1

Jedna uwaga: Przed przeczytaniem tego rozwiązania. To jest ściśle rozwiązanie dla tych, którzy próbują skonfigurować ramy.

Myślę, że skoro dopiero zaczynasz wypróbowywać, to co możesz zrobić, to upuść bazę danych, a następnie rozpocznij wszystko od nowa.

- mysql -uroot -proot 
- show databases; 
- drop database <dbname>; 

Następnie odtwórz tabele.

- app/console doctrine:database:create 
- app/console doctrine:schema:create 

Jedna uwaga to może być bardzo zły pomysł, aby zrobić to w środowisku produkcyjnym, jeśli masz już utworzone kontrolerów i dane są już wypełnione.

1

Ta praca dla mojej symfonii 2.7. Po prostu wpisz config.yml:

doctrine: 
    # ... 
    orm: 
     # ... 
     entity_managers: 
      default: 
       naming_strategy: doctrine.orm.naming_strategy.underscore 
0

Jeśli używasz ORM można skonfigurować go tak jak to

District.orm.yml

Project\Bundle\DuterteBundle\Entity\Vp: 
    type: entity 
    table: district//note the lowercase 
    repositoryClass: Project\Bundle\DuterteBundle\Repository\VpRepository 
Powiązane problemy