/ / Как да порт от Drupal до Django? - django, drupal

Как да порт от Drupal до Джанго? - django, drupal

Какъв ще бъде най-добрият начин за пренасяне на съществуващоDrupal сайт към приложение за Django? Имам около 500 страници (най-вече модул за книги) и около 50 публикации в блог. Не използвам модули от трети страни. Бих искал да запазя текущите URLS (за целите на SEO) и да мигрирам база данни към Django. Аз ще създам обикновен блог, така че мигриращите блог постове трябва да бъдат наред. Какъв би бил най-добрият начин да се покажат 500+ страници с Джанго? Бих искал да използвам Админ за редактиране / добавяне на нови страници.

Отговори:

12 за отговор № 1

Цялото развитие на Django е подобно, а вашето ще се побере в модела.

  1. Определете модела Django за вашите книги и публикации в блогове.

  2. Устройството тества този модел, използвайки вградените възможности за тестване на Django.

  3. Напишете няколко малки помощни програми, за да заредите данните си в Django. На този етап ще разберете, че вашият модел Django не е перфектен. Добре. Оправи го. Решете тестовете. Повторно натоварване.

  4. Конфигурирайте стандартния администраторски интерфейс към вашиямодел. В този момент ще прекарате времето, докато променяте администраторския интерфейс. Ще осъзнаете, че вашият модел за данни е погрешен. Което е добро нещо. Коригирайте модела си. Поправете тестовете си. Поправете товарите си.

  5. След като данните ви са правилни, можете да създавате шаблони от наследените си страници.

  6. Създавайте mappings на URL адресите и функции за преглед, за да попълвате шаблоните от модела за данни.

Отделете време, за да получите правилния модел на данните. Това наистина има значение, защото всичко останало е много просто, ако вашият модел за данни е солиден.


3 за отговор № 2

Може да е възможно да напишете джанго модели, които работят със старата база данни (аз го направих в миналото; manage.py inspectdb).

Въпреки това ще следвам съветите по-горе и ще проектирамчиста база данни, използвайки конвенциите Django, и след това да прехвърлите данните. Обикновено пиша скриптове за мигриране, които пишат в новата база данни чрез Django и прочитат стария с помощта на Python DB API (докато е възможно да свържете Django с множество бази данни едновременно, също така).

Също така предлагам да разгледате наличните приложения за блогове за Джанго. Ако това е включено в Pinax отговаря на вашите нужди, продължете и използвайте Pinax като отправна точка.


0 за отговор № 3

Отговорът на С. Лот все още е валидна след години, се опитвам да завърша анализа с инструментите и формата, за да изпълня задачата.

Има много инструменти за експортиране на Drupal оттук нататък, но със същата молба, за която отивам Вижда се Datasource избирайки JSON като формат. Този модул е ​​много солиден и достъпен за последната версия на Drupal. Най- JSON форматът е много бърз както при анализиране, така и при кодиране и е лесен за четене и е много подходящ за Python (импортиране на json).

С помощта на изгледа Datasource можете да създадете изглед на възел(nid), показват ограничен брой елементи на страница, конфигурират пътя за преглед, добавят към него идентификатор на филтъра и преминават към нея, за да прочетат всички елементи, докато не получите празен отговор JSON.

Когато внасяте в Джанго, имате и широк набор от инструменти, като се започне от loaddata за зареждане на приспособленията, Изгледи Datasource са изнесли JSON, но не са форматирани, тъй като Django очаква тела: можете да напишете персонализирана команда за администратор за да направите импортирането, където можете да имате пълен контрол върху потока от импортиране.

Можете да стартирате командата си като подадете nid = 0 катоаргумент и след това позволи на процедурата да чете, да импортира и след това да извлича данни от следващата страница, минаваща само от последното четене в предишната HTTP заявка. Дори можете да ограничите достъпа до изгледа, но имате нужда от допълнителна конфигурация от страната на импорта.

Що се отнася до производителността, само аз анализирах и импортирах 15 000+ възела за по-малко от 10 минути чрез потребителска команда Django 1.8 на 8-ядрена / 8 GB Linux виртуална машина и PostgreSQL като СУБД, записване на данни за успех и грешка в потребителски модел за всеки възел.

Това са основите за внос / износ между тези две платформи, за подробна информация описах всички важните стъпки за експортиране от Drupal и след това импортиране в Django в това ръководство.