/ / Nástroje a tipy na prepínanie CMS - django, drupal, content-management-system, joomla

Nástroje a tipy na prepínanie CMS - django, drupal, systém na správu obsahu, joomla

Pracujem na univerzite a v uplynulom roku aj mynakoniec sa odtrhol od našej statickej stránky s niekoľkými tisíckami stránok HTML a presunul sa na stránku Drupalu. To zjavne znamená obrovské množstvo údajov.

Čo ak už používate CMS a steprechod na iný, ktorý lepšie vyhovuje vašim potrebám? Ako minimalizujete kopu zadávania údajov počas takej obrovskej zmeny? Sú na to vytvorené nástroje alebo nejaké osvedčené postupy, ktoré by ste mali dodržiavať?

odpovede:

5 pre odpoveď č. 1
  • Počítajte s tým, že budete musieť predspracovať ajdodatočné spracovanie údajov manuálne, nech sa stane čokoľvek. Prijmite včas, že vaše údaje budú pravdepodobne v horšom stave, ako si myslíte: polia budú zneužité; odkazy na záznam (cudzie kľúče) sa nemusia implementovať správne alebo vôbec; obsah pravdepodobne bude potrebné vytrhnúť a niekedy bude len zlý alebo nesprávny.

  • Skontrolujte svoje kódovanie databázy.Staršie databázy nebudú v kódovaní Unicode a budete mrzutí, ak budete musieť exportovať skládky údajov a importovať ich inde. Aj potom predpokladajte, že vo vašich údajoch budú nejaké nezvyklé netlačiteľné znaky: zdá sa, že ich programy ako Word nejako vkladajú všade a "videl som ... kódové body ... vy ľudia by ste neverili." Zvážte zametanie svojich údajov ešte predtým, ako tieto znaky začnete (alebo dokonca zametanie výpisu z databázy). Rozhodnite sa, či ich budete haraburdí alebo nie, alebo sa ich pokúsite konvertovať v prípade napr. Slovo „inteligentné“ interpunkčné znaky.

  • Vytváranie explicitných údajov je veľmi ťažkéštruktúr z implikovanej. Ak majú vaše prichádzajúce údaje samostatné pole pre dátum, môžete ich namapovať na pole pre dátum; ak má dátum ako súčasť veľkej časti kódu HTML, aj keď je tento dátum v značke s atribútom id, jednoduché skriptovanie nebude fungovať. Môžete použiť offline skriptovanie s nástrojom BeautifulSoup alebo (ak je váš kód HTML o niečo krajší ) rýchlejší lxml na predbežné spracovanie vašej množiny údajov, extrahovanie týchto implicitných polí a ich uloženie do implicitného formátu. Zvážte vytvorenie prechodnej databázy, kam sa tieto revízie chystajú.

  • Modul Migrate je vynikajúci, ale musí byťskutočne dobrá vernosť údajov a hrať viac šikovných trikov, ktoré by ste sa možno mali naučiť o jeho systéme pripájania (terminológia Drupalu pre funkcie podľa konkrétnej schémy pomenovaní) a základoch písania modulu, do ktorého tieto háky zapojíte (modul je v podstate iba Súbor PHP, kde všetky funkcie začínajú rovnakým textom, názvom súboru modulu.)

  • Celý importovaný obsah by mal byť označený naaspoň zbežná kontrola. Môžete to urobiť tak, že ho naimportujete so stavom = 0, tj. Nepublikované, a potom vytvoríte zobrazenie pomocou modulu Zobrazenia, aby ste prešli obsahom a otvorili ho na ďalších kartách na kontrolu. Hromadné operácie zobrazenia vám umožňujú mať vedľa položiek zobrazenia skupinu začiarkavacích políčok, takže môžete schváliť veľa uzlov naraz.

  • Očakávajte spustenie a opätovné spustenie a opätovné spustenie importu,zakaždým opravovať nové veci. Čo najskôr skontrolujte desať alebo dvadsať položiek. Ak sa vyskytnú problémy, skontrolujte ich ďalších desať alebo dvadsať. Opravte a opakujte import.

  • Zmerajte, ako dlho bude pravdepodobne možné spustiť jeden importvziať. Buďte pesimistickí: mali sme import, pri ktorom sme očakávali, že pri zavedení úplného súboru dát bude trvať desať hodín exponenciálne spomalenie; až kým sme konečne neopravili nejaké pomalé dotazy, predpokladalo sa, že to bude trvať dva týždne.

  • Ak máte pochybnosti, alebo si myslíte, že je to technickéAspekty vyššie uvedeného si budú vyžadovať viac času ako samotná práca, potom si stačí najať dočasných pracovníkov, aby vykonali údaje. Stále však potrebujete dôstojné kontroly kvality, čo najskôr počas ich práce. Vývojári Drupalu sú tiež na prenájom: vyskúšajte relevantný kanál IRC vašej krajiny alebo pošlite poznámku do príslušnej skupiny groups.drupal.org. Sú síce drahšie ako dočasní používatelia, ale zvyčajne píšu lepšie PHP ...! Zvážte tiež prenájom agentúry: to je nehanebná zástrčka, pretože pracujem pre jednu, ale niekedy je najlepšie získať odborníkov na tieto konkrétne zamestnania.

  • Skutočne dobrý dovoz je vždy tvrdý a ťažší, ako čakáte. Nenechajte sa tým zraziť!


7 pre odpoveď č. 2

Na Migrovať modul pre Drupal by veľmi pomohol. The Migrácia dát Economist.com na Drupal vám poskytne prehľad o procese.

Na video od Migrácia: nielen pre vtáky prezentácia na Drupalcon DC 2009 je pravdepodobne trochu neaktuálna, ale poskytuje aj dobrý úvod.


2 pre odpoveď č. 3

Sprievodca migráciou + tabuľkou (a zobrazeniami schémy +) je správna cesta. Pomocou sprievodcu tabuľkou môžete pomocou migrácie vystaviť ľubovoľnú tabuľku drupalu a zodpovedajúcim spôsobom mapovať polia.

Tu nájdete podrobný sprievodca: http://www.lullabot.com/articles/drupal-data-imports-migrate-and-table-wizard


2 pre odpoveď № 4
  1. Budete chcieť mať prístup k existujúcim údajom z django. To mi pri migrácii veľmi pomáha: http://docs.djangoproject.com/en/1.2/howto/legacy-databases/ . Vďaka správnym definíciám modelu budete mať úplné informáciemoc django vrátane admin. V skutočnosti používam django ako administrátorský backend pre niekoľko starších projektov php - administrátor djanga môže ľahko prekonať množstvo vlastných ručne napísaných admin skriptov.

  2. Povolenie by malo zostať rovnaké.Používatelia by mali mať možnosť prihlásiť sa pomocou svojich prihlasovacích údajov, ale je ťažké napísať migračný skript pre údaje autorizácie, pretože schémy hašovania hesiel sa môžu líšiť a neexistuje medzi nimi žiadny spôsob konverzie bez znalosti jednoduchých hesiel. Django poskytuje spôsob podpory rôznych zdrojov autentifikácie, takže môžete napísať back-end autentizáciu Drupal: http://docs.djangoproject.com/en/1.2/topics/auth/#writing-an-authentication-backend

  3. Nie je potrebné robiť celý prepis.Ak niektoré časti fungujú dobre, môže ich stále napájať Drupal. Nový kód je možné písať pomocou Django s rovnakým používateľským rozhraním. Smerovanie medzi starou a novou časťou je možné vykonať prepisom adresy URL webového servera. Django aj drupal môžu byť napájané rovnakou DB.