2013-10-25 11 views
8

Zajmuję się tworzeniem aplikacji, używając Symfony 2.3, która będzie musiała zostać zainstalowana dla różnych klientów. Będziemy oferować różne funkcje, dlatego chcemy, aby funkcje/pakiety były oddzielone od głównej aplikacji i ładowane do projektu za pomocą kompozytora. Ponieważ używamy Doctrine Migrations do utrzymywania zmian DB w różnych wersjach, nie jestem pewien, w jaki sposób korzystać z nich z pakietu. Używamy Capifony do wdrożenia aplikacji na serwer na żywo.Jak obsługiwać migracje doktryn w pakietach

Moje pytanie brzmi: jak zautomatyzować wykonywanie migracji z pakietów załadowanych przez kompozytora?

Odpowiedz

3

Skończyłem na tworzeniu polecenia, które skopiuje wszystkie pliki migracji z predefiniowanych katalogów w pakunkach do domyślnej lokalizacji, a następnie wykonując doktrynę: migracje: migracja z w ramach polecenia.

+0

Czy możesz udostępnić swoje rozwiązanie? – CoKe

1

Nie sądzę, że problemem są "załadowane przez kompozytora pakiety". Na przykład, możesz mieć kilka pakietów w src/ (część aplikacji lub submodulowanej) i mieć dokładnie ten sam problem. Problem polega na posiadaniu wielu menedżerów encji i baz danych dla różnych pakietów. Miejsce, w którym przebywają, jest trywialne.

W każdym razie mam dokładnie ten sam problem. Po kilku poszukiwaniach odkryłem, że jest rzeczywiście otwarta prośba o usunięcie tego problemu: https://github.com/doctrine/DoctrineMigrationsBundle/pull/46

Mam nadzieję, że wkrótce zostanie naprawiony!

+0

Masz rację ... nie chodzi o pakiety zainstalowane przez kompozytora. Chociaż używam tego samego menedżera encji i DB dla wszystkich pakietów. – Michi

2

Do złożonego wdrożenia użyłem phing. Łatwo integruje się z konsolą Symfony. Ale w końcu używam prostego kodu na konsoli Synfony. Kompozytor może łatwo wywoływać polecenia aplikacji Symfony jako "post-install-cmd"

+0

Również myślę, że można rozszerzyć Composer \ Command \ InstallCommand – nonlux

+0

Używam Capifony do wdrożenia. Więc pójdę po nowe polecenie, aby poradzić sobie z migracjami w pakiecie DB. – Michi