Veškeré tabulky v databázi, které Drupal a jeho moduly používají, jsou vytvářeny prostřednictvím Schema API. To bylo zavedeno v Drupalu 6 a umožňuje jednoduše nadefinovat strukturu tabulky, která se má v databázi vytvořit například při instalaci nebo aktualizaci modulu. Stejně tak lze Schema API použít i k odstranění tabulek modulu poté, co jej vypnete a provedete jeho odinstalování.
Přímo v administraci Drupalu nenajdete žádný nástroj sloužící k prohlížení jeho databáze. Modul Schema sice k prohlížení obsahu databázových tabulek také neslouží, ale umožní vám zobrazit a porovnat strukturu tabulek v databázi. Jeho zprovoznění je velice snadné. Stáhněte jej a zapněte. Netřeba nic nastavovat.
Porovnání struktury tabulek v databázi s definicemi modulů v Drupalu
Po zapnutí modulu Schema přejděte do administrační části Struktura > Schema > Compare. Modul na této stránce projde definice databázových tabulek u instalovaných modulů a porovná je s tím, jak ve skutečnosti vypadají tabulky v databázi.
V tomto přehledu by vás měla zajímat především sekce Mismatch. Zde uvidíte seznam tabulek, jejichž aktuální stav a definice si nedopovídají. K tomuto problému může dojít při nějakém zásahu do databáze mimo Drupal nebo v případě, že jste po aktualizaci Drupalu nebo některých modulů opomenuli spustit proces update.php a projít si aktualizačního průvodce.
Jednotlivé tabulky lze rozkliknout a prohlédnout si, co přesně v databázi nesedí.
Pokud se v databázi nacházejí nějaké tabulky, které jste tam přidělali mimo Drupal, najdete je v sekci Extra. Pokud jste si jisti, že jste do databáze jinak než z Drupalu nesahali a přesto se v sekci Extra nějaké tabulky vyskytují, je to zřejmě zbytek po nějakých vašich hrátkách s doplňkovými moduly, které už nepoužíváte, ale neprovedli jste jejich řádnou odinstalaci.
V ideálním případě byste měli moduly do Drupalu dočasně nakopírovat, nezapínat je, ale pouze spustit jejich odinstalování. Pak je zase smažte. Cesta, jak se tabulek zbavit postupem, který není až tak ideální, znamená spustit nějakého databázového správce (phpMyAdmin, Adminer či Sequel Pro) a přebytečné tabulky v něm smazat. Tento postup ale není vhodný pro začátečníky.
Zobrazení vlastností tabulek
Na kartě Describe najdete prohlížeč struktury schémat v poněkud jiné podobě. Nic se tu s ničím neporovnává, ale jednotlivé tabulky si tu můžete rozkliknout a podívat se na definice jejich sloupečků.
Seznam je seřazen dle modulů, takže v něm získáte mimo jiné i představu o tom, které tabulky v databázi Drupalu patří ke kterému modulu.
Pomůcky pro vývojáře modulů
Výše uvedené dvě části modulu Schema sloužili, řekněme, spíše pokročilým uživatelům nebo správcům webu. Položky Inspect, SQL a Show jsou pro změnu určeny zase spíše vývojářům a tvůrcům nových modulů.
Chystáte-li se totiž vytvořit nový modul, který pracuje s databází, můžete si nastudovat nezáživné Schema API, ve kterém se dozvíte, jak definovat sloupec pro textové znaky, jak pro integer, jak pracovat s indexy atd. Nebo použijete modul Schema a na záložce Inspect si prohlédnete PHP kód, který jsou definovány jednotlivé tabulky. Není nic jednoduššího než některou z definicí překopírovat do svého modulu, samozřejmě upravit její název a případně poupravit definované sloupce tabulky.
Karta SQL vám zobrazí SQL příkazy pro vytvoření jednotlivých tabulek, které váš Drupal momentálně používá (bez naplnění daty) a karta Show (Ukázat) zase představí tuto definici ve formě pole v PHP.
Další moduly pro práci s databází v Drupalu
Jak jsem říkal na začátku, začátečníci modul Schema možná úplně nedocení, pro ty zkušenější z vás se může stát užitečným pomocníkem. Chcete-li tipy na další zajímavé moduly pro Drupal, které nějak zpřístupňují práci s databází v jeho administraci, pak mrkněte na následující:
- DB Maintenance – modul sloužící k optimalizaci tabulek v databázi, přirovnejme jej třeba k nástroji pro defragmentaci disků v počítači
- Backup and Migrate – modul pro zálohování databáze v Drupalu, viz starší článek Jak zálohovat instalaci Drupalu.
- Database Adminitration – prohlížeč databáze a jejího obsahu
Tvůrce webů z Brna se specializací na Drupal, WordPress a Symfony. Acquia Certified Developer & Site Builder. Autor několika knih o Drupalu.
Web Development Director v Lesensky.cz. Ve volných chvílích podnikám výlety na souši i po vodě. Více se dozvíte na polzer.cz a mém LinkedIn profilu.
Přidat komentář