Z czym do MySQL (pod Windows, choć nie tylko)

MySQL jaki jest każdy widzi – działa, są bazy, tabele, czasem nawet FK, triggery itd. W mniejszych projektach często jest to ten ubogi krewny aplikacji, tworzony na zasadzie zrobić i zapomnieć. Skoro tam się za bardzo nie angażujemy, jeśli już to do podglądu czy prostej edycji danych, to po co kombinować:

I tak oto mamy dwa najpopularniejsze skrypty php od obsługi baz danych. Można uruchomić lokalnie, można wgrać na serwer, Adminer to tylko jeden plik, więc jeszcze lepiej. Najpotrzebniejsze rzeczy są: bazy, tabele, export, import – można działać.

Ale co jeśli chcielibyśmy więcej? Nasz Netbeans/PHPStorm może dużo, dlaczego nie chcieć tyle samo w przypadku bazy danych, niech nam coś więcej jej manager zaoferuje. Jeśli chcemy więcej to:

Lista jest spora, znacznie ciekawsza niż poprzednia. Problem tylko – co wybrać? Tutaj podobnie jak z edytorem, jest to poniekąd kwestia gustu i przyzwyczajeń, choć nie do końca. U mnie zaczęło się od MySQL Workbench (jeszcze pod starą nazwą), ale to było wolne, niestabilne i jeszcze raz wolne.

Następnie SQLyog – i to był mój program na lata, bardzo długo go używałem. Dlaczego? Jest darmowy, jest szybki i czytelny, nie jest przeładowany niepotrzebnymi funkcjami. Bardzo wygodnie się przegląda bazę, edytuje bezpośrednio w komórkach, nawet jeśli jest to wynik konkretnego zapytania, a nie przeglądanie całej tabeli. Obecnie jest już HeidiSQL, które też oferuje ciekawy pakiet funkcji. Nie do końca jednak byłem z niego (niej? tej Heidi?) zadowolony, więc kolejno sprawdzałem pozostałe rozwiązania z listy. Wymagań dużych nie miałem, np. nie zależało mi na synchronizacji baz itp. Zawsze jednak coś mi się nie podobało, a to ergonomia, a to dziwny interface i wygląd, ciężko mi było zaakceptować inny program niż SQLyog, już myślałem, że za bardzo jestem do niego przyzwyczajony, może kupić płatną wersję, aż trafiłem na…

dbForge Studio for MySQL, Professional Edition

Od razu na początek coś czego wcześniej mi brakowało, ale do teraz nie wiedziałem jak bardzo – Code Snippets:

dbforge1

Wcześniej, od lat, trzymałem częste zapytania wykonywane w danym projekcie na boku, copy/paste i run. Dlaczego na boku, skoro wygodniej było by w programie? Nie wiem, ale na pewno nie wrócę do starej metody. Skoro to mamy za sobą, to możemy wrócić do głównego powodu dla którego zacząłem szukać innego programu, nawet płatnego (vide PHPStorm), jeśli tylko będę dzięki niemu szybciej pracował – podpowiadanie. Tutaj jest ono zrealizowane rewelacyjnie. Podpowiada w każdym momencie pisania zapytania (przykład poniżej z CONCAT), ale również przy gotowym zapytaniu, jak przytrzymam kursor to widzę podpowiedzi do danego miejsca w zapytaniu (przykład z p.payment_date). Podpowiadanie jest szybkie, dokładne i na prawdę oszczędza czas. Oczywiście dodatkowo kod jest formatowany, aby ładnie wyglądał – i to nie tylko podświetlanie czy uppercase dla SELECT, FROM itd, ale np. dodawanie aliasów do tabel, program sam „cart_products” uzupełni do „cart_products cp”, co mnie osobiście bardzo odpowiada.

dbforge2

Kolejny temat – refaktoring – o którym czasami myślałem robiąc podobne rzeczy w PHPStorm: dlaczego w bazie nie można z automatu zmienić nazw kolumn wraz z ich kluczami. No więc – można. Jeśli kolumna jest kluczem obcym, dbForge zatroszczy się o naszą wygodę i zmieni wszystkie odniesienia do niej, poprawi je na nową nazwę. Znowu oszczędza mój czas – w końcu za to mu płącę 😉 Za mnie pozmienia FK, ale też odniesienia np. w widokach.

dbforge3

Sam nie korzystam (mam od tego Doctrine Migrations), ale warto wspomnieć bo jest do dobrze rozwiązane – synchronizacja. Porównanie zmian jest nie tylko proste ale też czytelne. I nie ogranicza się do schematu bazy, można też porównywać dane. Jest to wygodne dla niektórych tabel (np. statusy itp):

dbforge4

Inną ciekawą i sprawnie zrealizowaną rzeczą jest profiler – wygodny sposób na SHOW PROFILE oraz EXPLAIN. Wszystko jest proste i czytelne, a wyniki zapytań można porównywać w bardzo wygodny sposób – obok siebie z zaznaczonymi istotnymi różnicami.

dbforge5

Z poziomu programu można też robić takie rzeczy jak zarządzanie serwerem, import/export danych (do wielu formatów) oraz całej bazy (dump) czy wizualne tworzenie zapytań. Jest ono efektowne, ale ja osobiście nie mam potrzeby korzystać z niego, choć podoba mi się generowanie diagramu schematu bazy. Dzięki temu można łatwiej zobaczyć jak to razem wygląda, czy nie ma jakiś nadmiarowych FK, albo może gdzieś ich brakuje itp. Oczywiście np. Workbench też ma to dobrze rozwiązane. Jest też debugger – tak, debugger dla MySQL. Nie miałem okazji mu się przyjrzeć, więc trudno mi ocenić na ile się sprawdza. Ale to na pewno warta uwagi ciekawostka. Program oferuje też narzędzia do raportowania i analizy danych – ich jednak nie używam, nie sprawdzałem, więc ciężko powiedzieć jak działają. W każdym razie opis oraz screeny na stronie producenta rokują bardzo dobrze.

Jak widać możliwości dbForge Studio for MySQL są całkiem spore i co najważniejsze udało im się to zrobić tak, aby wszystko działało szybko i sprawnie, a interfejs był czytelny. Dla mnie to trochę jak z PHPStorm – po co płacić, są inne programy. Ale po kilku miesiącach używania wiem, że wart jest każdego euro jakie na niego wydałem. Tutaj sytuacja wygląda podobnie, trial mi się kończy i już widzę, że nie dam rady wrócić do poprzedniego softu, za wygodnie jest, zbyt dużo klikania/pisania mnie czeka jeśli zrezygnuję z dbForge.

fot. dbforge, cover: „Kevin Roberts shows off SQL Manager for MySQL” by Mike Schinkel CC BY 2.0

Freelancer, programista php, wiecznie niezadowolony ze swojego kodu. Toleruje frontend, kocha backend, miłośnik integracji :)

  • Gohanzo

    Z tych popularniejszych jeszcze jest DataGrip od Jetbrainsów 😉

    • thejw23

      Racja – zapomniałem o nim, faktycznie wyszedł już z bety, może w wolnej chwili dam mu szansę.

  • Marcin

    Code Completion jest w WorkBenchu od wersji bodajże 5.2.41 nie wiem czy wtedy dobrze działało, ale w wersji 6.3 całkiem spoko. Code Snippets też są wszelkiej maści: https://dev.mysql.com/doc/workbench/en/wb-sql-editor-snippets.html

Send this to friend

webmastah.weekly
Cotygodniowa porcja linków ze świata WEBDEV BEZ spamu, TYLKO samo mięcho!
Zobacz poprzednie wydania. Dołącz do 2 tysięcy webdeveloperów!
HTML5, CSS3, JS (React, Angular, Ember, Vue), PHP, SQL
webmastah.weekly
Cotygodniowa porcja linków ze świata WEBDEV BEZ spamu, TYLKO samo mięcho!
Zobacz poprzednie wydania. Dołącz do 2 tysięcy webdeveloperów!
HTML5, CSS3, JS (React, Angular, Ember, Vue), PHP, SQL