/ / Jak przenieść się z Drupal do Django? - django, drupal

Jak przesiąść się z Drupala do Django? - django, drupal

Jaki byłby najlepszy sposób na przeniesienie istniejącegoWitryna Drupal do aplikacji Django? Mam około 500 stron (głównie moduł książek) i około 50 wpisów na blogu. Nie używam żadnych modułów zewnętrznych. Chciałbym zachować aktualne adresy URL (do celów SEO) i przeprowadzić migrację bazy danych do Django. Stworzę prostą aplikację blogową, więc migrowanie postów na blogu powinno być w porządku. Jaki byłby najlepszy sposób wyświetlania ponad 500 stron za pomocą Django? Chciałbym użyć Administratora do edycji / dodawania nowych stron.

Odpowiedzi:

12 dla odpowiedzi № 1

Cały rozwój Django jest podobny, a twój pasuje do wzoru.

  1. Zdefiniuj model Django dla swoich książek i wpisów na blogu.

  2. Wykonaj test tego modelu, korzystając z wbudowanych możliwości testowania Django.

  3. Napisz małe narzędzia, aby załadować starsze dane do Django. W tym momencie zdasz sobie sprawę, że twój model Django nie jest idealny. Dobry. Napraw to. Napraw testy. Ponów obciążenia.

  4. Skonfiguruj domyślny interfejs administracyjny do swojegoModel. W tym momencie poświęcisz czas na ulepszenie interfejsu administratora. Zdasz sobie sprawę, że twój model danych jest nieprawidłowy. Co jest dobre. Napraw swój model. Napraw swoje testy. Napraw swoje obciążenia.

  5. Teraz, gdy Twoje dane są poprawne, możesz tworzyć szablony ze starszych stron.

  6. Utwórz odwzorowania adresów URL i wyświetl funkcje, aby wypełnić szablony z modelu danych.

Poświęć czas, aby uzyskać prawidłowy model danych. To naprawdę ma znaczenie, ponieważ wszystko inne jest bardzo proste, jeśli twój model danych jest solidny.


3 dla odpowiedzi № 2

Być może możliwe jest napisanie modeli Django, które działają ze starszą bazą danych (zrobiłem to w przeszłości, zobacz dokumentację manage.py inspectdb).

Jednak postępuję zgodnie z powyższymi wskazówkami i projektujęwyczyść bazę danych przy użyciu konwencji Django, a następnie zmigruj dane. Zwykle piszę skrypty migracyjne, które piszą do nowej bazy danych przez Django i czytają stare za pomocą surowych API Pythona DB (podczas gdy możliwe jest powiązanie Django z wiele baz danych jednocześnie, także).

Proponuję również zapoznać się z dostępnymi aplikacjami do blogowania dla Django. Jeśli ta zawarta w Pinax pasuje do twoich potrzeb, używaj Pinax jako punktu wyjścia.


0 dla odpowiedzi № 3

S.Lott odpowiedź jest nadal ważny po latach, staram się ukończyć analizę za pomocą narzędzi i formatu, aby wykonać to zadanie.

Istnieje wiele narzędzi eksportowych Drupala, ale z takim samym żądaniem idę Wyświetl źródło danych wybór JSON jako formatu. Ten moduł jest bardzo solidny i dostępny dla ostatniej wersji Drupala. The JSON Format jest bardzo szybki zarówno w parsowaniu, jak i kodowaniu, jest łatwy do odczytania i przyjazny dla Pythona (import json).

Korzystając z Widoku Źródło danych, możesz utworzyć widok węzłaposortowane według identyfikatora węzła (nid), pokaż ograniczoną liczbę elementów na stronie, skonfiguruj ścieżkę widoku, dodaj do niej identyfikator filtra i przekaż do niego numer nid do odczytu wszystkich elementów, aż uzyskasz pustą odpowiedź JSON.

Podczas importowania w Django masz także szeroki zestaw narzędzi, zaczynając od loaddata, aby załadować urządzenia. Widoki Źródło danych wyeksportowało JSON, ale nie jest sformatowane, ponieważ Django oczekuje urządzeń: możesz napisać niestandardowe polecenie administratora zrobić import, gdzie możesz mieć pełną kontrolę nad przepływem importu.

Możesz uruchomić swoje polecenie przekazując nid = 0 jakoArgument, a następnie niech procedura odczytuje, importuje, a następnie pobiera dane z następnej strony, przekazując po prostu ostatni nid wczytany w poprzednim żądaniu HTTP. Możesz nawet ograniczyć dostęp do ścieżki w widoku, ale potrzebujesz dodatkowej konfiguracji po stronie importu.

Jeśli chodzi o wydajność, na przykład przeanalizowałem i zaimportowałem 15 000+ węzłów w mniej niż 10 minut za pomocą niestandardowego polecenia admin Django 1.8 na maszynie wirtualnej 8 rdzeń / 8 GB Linux i PostgreSQL jako DBMS, logując sukces i informacje o błędach do niestandardowego modelu dla każdego węzła.

Są to podstawy do importu / eksportu między tymi dwiema platformami, dla szczegółowych informacji opisałem wszystkie główne kroki do eksportu z Drupala, a następnie import do Django w tym przewodniku.