Drupal a modul Schema: prohlédněte si databázi a udělejte v ní pořádek

Dnes vám představím modul Schema, který v Drupalu umožňuje prohlížet strukturu tabulek v databázi, zobrazovat užitečné informace k jejich vytvoření a porovnávat, zda struktura databáze odpovídá instalovaným modulům. Schema využijete také při tvorbě vlastních modulů.

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.

Drupal a modul Schema

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ů.

Drupal a modul Schema

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í:

Tagy

Buďme ve spojení, přihlaste se k newsletteru

Odesláním formuláře souhlasíte s podmínkami zpracováním osobních údajů. 
Více informací v Ochrana osobních údajů.

Autor článku: Jan Polzer

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.

Komentáře k článku

Přidat komentář

Odesláním komentáře souhlasíte s podmínkami Ochrany osobních údajů

reklama
Moje kniha o CMS Drupal

 

Kniha 333 tipů a triků pro Drupal 9


Více na KnihyPolzer.cz

Sledujte Maxiorla na Facebooku

Maxiorel na Facebooku

Hosting pro Drupal a WordPress

Hledáte český webhosting vhodný nejenom pro redakční systém Drupal? Tak vyzkoušejte Webhosting C4 za 1200 Kč na rok s doménou v ceně, 20 GB prostoru a automatické navyšováním o 2 GB každý rok. Podrobnosti zde.

@maxiorel na Twitteru

Maxiorel na Twitteru