2011-07-11 18 views
6

Jestem w trakcie aktualizacji z Doctrine 1.1.4 do Doctrine 2.0.6 w mojej aplikacji Zend. Zainstalowałem narzędzie wiersza poleceń Doctrine 2.Czy można generować klasy modelu za pomocą Doctrine 2 bezpośrednio z bazy danych?

W Doctrine 1.1.4 wygenerowałem klasy modeli bezpośrednio z bazy danych (za pomocą Doctrine :: generateModelsFromDb()), czy jest to możliwe w Doctrine 2, czy też muszę przejść proces "mapowania", tj. udostępnianie adnotacji Docblock, XML lub struktur YAML tabel.

Powodem, dla którego pytam, jest to, że istnieje opcja "setAutoGenerateProxyClass" w Doctrine 2, odniosłem wrażenie, że oznacza to, że wygeneruje ona klasy proxy od zera.

Doceń pomoc.

Odpowiedz

6

Autogenerowanie proxkllasses oznacza w zasadzie, że Doctrine 2 automatycznie wygeneruje "klasy proxy" dla twoich jednostek, zamiast tylko generować je ręcznie przy użyciu generatora proxy. Proxy są używane, gdy masz relacje w swoich jednostkach i muszą one być leniwym ładunkiem.

do generowania informacji mapowania z bazy danych, można użyć konwertować-mapping:

php doctrine orm:convert-mapping --from-database yml /path/to/mapping-path-converted-to-yml 

Należy pamiętać, że ten jest zalecany do stosowania jedynie jako punkt wyjścia. Sterownik bazy danych nie jest w stanie poprawnie wygenerować odwzorowań dla wszystkich możliwych kombinacji opcji, więc prawdopodobnie powinieneś uruchomić to tylko raz, a następnie samemu zapisać odwzorowania.

Zobacz Doctrine 2 manual, "Reverse Engineering the database"

3

Można użyć „adnotacji” jako kierowcy, jeśli chcesz uzyskać wygenerowanych podmioty:

php doctrine orm:convert-mapping --from-database annotation generatedModels