Max Damage
15.12.2009, 11:16:50
Cześć, zainstalowałem sobie symfony i stworzyłem projekt, schemat a teraz chce wygenerować sql ze schematu. Piszę więc:
php symfony propel:build-sql
Po czym wypisuje mi:
There are no tasks defined in the "propel" namespace.
Wyszukałem w sieci, aby zmienić linijkę w ProjectConfiguration.class.php na taką:
$this->enableAllPluginsExcept(array('sfDoctrinePlugin'));
Ale to nie pomaga. Nadal wyświetla to samo.
Korzystam z
tego poradnika, mam wersje 1.4.1
wiewiorek
15.12.2009, 11:20:26
bo czytasz tutorial dla symfony 1.2

php symfony propel:build --sql
Max Damage
15.12.2009, 11:53:53
Fakt, w 1.4 polecenie jest faktycznie nieco inne.
Zresztą teraz zauważyłem że chyba pominąłem polecenie:
php symfony propel:build-schema
Chociaż w sumie już nie wiem, robię to pierwszy raz i trochę się gubię.
Ale to nie zmienia faktu że nadal nie widzi tego polecenia.
wiewiorek
15.12.2009, 12:27:51
php symfony doctrine:build-schema
Tworzy schemat na podstawie istniejacej bazy, nie nalezy uzywac tego polecenia - przynajmniej w symfony 1.2 z zainstalowanym sfGuardPlugin tworzylo pliki modeli sfGuardPlugin tam gdzie inne modele zamiast w oddzielnym folderze, tzn. po zainstalowaniu sfGuardPlugin byly wygenerowane modele w sfGuardPlugin w oddzielnym folderze, a po zbudowaniu schematu te same pliki byly tworzone w miejsce gdzie inne modele, co bylo bez sensu i potem przy tworzeniu zapytan byly rozne cuda i bledy.
Wydajesz polecenie:
php symfony propel:build --all --no-confirmation
To ci zbuduje modele, formularze itd. - wszystko co trzeba na podstawie stworzonego przez ciebie schematu.
Poza tym polecam Doctrine, w Symfony 2 Propel zostanie najprawdopodobniej calkowicie usuniety.
Max Damage
15.12.2009, 13:35:24
Dzięki za wyjaśnienie.
Polecenie z propel nadal nie działa, ale dobra może być doctrine, póki co wszystko mi jedno. Wpisałem tak:
php symfony doctrine:build --all --no-confirmation
Wypisuje mi tak:
>> doctrine Dropping "doctrine" database
>> doctrine Creating "all" environment "doctrine" database
>> doctrine generating model classes
>> file+ C:\Documents and Settings\Rafa│...\Temp/doctrine_schema_92146.yml
No yml schema found in C:\Documents and Settings\Rafa│\Ustawienia lokalne\Temp/doctrine_schema_92146.yml
Przy czym plik doctrine_schema_92146.yml powstaje, tyle że jego zawartość to: { }
Kolejne polecenie i:
php symfony doctrine:insert-sql
>> doctrine created tables successfully
You must pass a valid path to a directory containing Doctrine models
Niby frameworki mają ułatwiać pisanie stron, ale ten póki co to jest nieźle zakręcony. Najpierw nie mogłem zainstalować pakietu pear z wampa, potem się chwilowo zaciąłem na zmiennych środowiskowych i ściągnięciu symfony, a teraz jeszcze baza danych. A ja się nie tak dawno dziwiłem że kohana wymaga ode mnie oprócz instalacji, grzebania w htaccess.
wiewiorek
15.12.2009, 13:39:25
Ale jak to ten plik powstaje ? Gdzie ci on powstaje ?
Powinien byc plik schema.yml.
Insert SQL juz nie wykonuj, bo to polecenie build all ma to w sobie.
Pokaz zawartosc swego pliku schema.yml.
Max Damage
15.12.2009, 14:04:11
Zawartość pliku schema.yml jest taka jak na stronie
http://www.symfony-project.org/jobeet/1_4/Doctrine/en/03Zawartość wkleiłem do config/doctrine/schema.yml
A plik powstaje w C:\Documents and Settings\Rafał\Ustawienia lokalne\Temp
destroyerr
15.12.2009, 15:16:59
@Max Damage jeśli możesz to pokaż nam Twój plik: ProjectConfiguration.class.php. Coś jest nie tak, mimo, że wyłączyłeś plugin sfDoctrinePlugin on nadal działa, a nie działa Propel.
@wiewiorek przepraszam, ale mam wrażenie, że wprowadziłeś autora w błąd. Napisałeś mu aby skorzystał z polecenia z przestrzeni Doctrine, a autor zaznaczył, że korzysta z Propela. Nie ma też znaczenia czy tutorial jest dla wersji 1.2 czy 1.4, dla obydwu istnieją te polecenia.
Co do Symfony 2 i Propela, było to powiedziane zanim Propel zaczął być reanimowany. Poza tym w Symfony 2 i tak będzie wykorzystane Doctrine 2, więc wybór teraz ma niewielkie znaczenie na przyszłość.
Max Damage
15.12.2009, 20:18:44
Faktycznie funkcja disablePlugins wyrzucała mi wyjątek na stronie. Ściągnąłem jeszcze raz symfony, tym razem nie za pomocą pear, a z oficjalnej strony, wersję 1.2. Zrobiłem jeszcze raz wszystko po kolei i zadziałało. Trochę dziwna sprawa, bo mam wrażenie że poza nieco inaczej brzmiącymi poleceniami do konfiguracji wszystko zrobiłem tak samo. Dzięki za pomoc.
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.