Niezalogowany [ logowanie ]
Subskrybuj kanał ATOM Kanał ATOM

Autor wpisu: Michał Janicki, dodany: 09.01.2016 18:07, tagi: php

Wersjonowanie bazy danych prostym tematem nie jest. Nie dla wszystkich. I o ile wersjonowanie „zwykłych” plików tekstowych zawierających kod jest sprawą jasną i prostą to jak zachowywać różne wersje czasami bardzo skomplikowanych schematów baz danych? Czy wersjonować samą tylko strukturę czy także dane? I wreszcie jak aktualizować bazę na „produkcji” – wszak wykonywanie aktualizacji „ręcznie” jest obarczone wysokim prawdopodobieństwem popełnienia zwykłego ludzkiego błędu. 

Co robić? Jak żyć?

Temat wersjonowania wydaje się na tyle skomplikowany, że wiele osób nie podejmuje nawet próby wyszukania narzędzia, które ułatwiło by zadanie. A nie trzeba zbyt długo i głęboko szukać. Znalezienie takiego rozwiązania jak framework Ruckusing nie powinno zająć więcej niż 10 minut. Idea tego narzędzia została zapożyczona (a jakże!) z systemu migracji wbudowanego w Ruby on Rails.

Jak to działa?

Ruckusing przechowuje kolejne aktualizacje bazy w klasach PHP, które zawierają kod wprowadzający zmiany w bazie. Każdy plik generowany jest za pomocą odpowiedniego polecenia w CLI. Nazwa każdego pliku jest poprzedzona datą i czasem, w którym został wygenerowany co utrudnia przypadkowe stworzenie dwóch plików o tej samej nazwie. Po wypełnieniu klasy kodem opisującym naszą aktualizację wracamy na chwilę do CLI – wydajemy polecenie odpowiadające za wprowadzenie zmian i już mamy zaktualizowaną bazę danych. Za pomocą jednego polecenia wprowadzone do bazy mamy nawet bardzo skomplikowane aktualizacje. Informacje o tym jakie zmiany zostały już wprowadzone do bazy przechowywane są w tabeli db_schema w postaci kolejnych rekordów zawierających przedrostek nazw plików (ten z datą i czasem).

Jak dodać do Ruckusing projektu?

Konfiguracja jest bardzo prosta i sprowadza się w zasadzie do dodania nowej zależności dla Composera:

ruckusing/ruckusing-migrations

Następnie wpisujemy composer update i już mamy zainstalowany framework.

Jak skonfigurować?

W katalogu głównym frameworku znajduje się katalog config a w nim z kolei szablon pliku konfiguracyjnego (database.inc.php). Plik ten należy skopiować do głównego katalogu biblioteki i zmienić jego nazwę na ruckusing.conf.php.  Sama biblioteka obsługuje bazy MySql, PostgresSql i SqlLite. Tak więc gdy otworzymy plik ruckusing.conf.php zobaczymy w nim tablice asocjacyjną z przykładowymi szablonami konfiguracji dla każdej z typów baz. Każda z przykładowych konfiguracji zapisana jest w odpowiednim kluczu (np. development). Jest to nazwa środowiska w jakim działa baza danych. Możemy tworzyć rzecz jasna własne środowiska poprzez dodawanie nowych kluczy i w jednym pliku przechowywać różne konfiguracje dla różnych środowisk.

Jeśli chodzi natomiast o konfiguracje samego połączenia z bazą to zapewne będziecie wiedzieć jak uzupełnić wszystkie dane poza directory. Ten parametr odpowiada za nazwę katalogu, w którym będą przechowywane pliki opisujące zmiany w bazie danych. Istotne jest aby w naszym środowisku developerski i w środowisku produkcyjnym ten katalog miał tą samą nazwę dzięki czemu gdy będziemy pobierać, commitować zmiany i później pobierać do wersji produkcyjnej wszystko będzie w jednym katalogu i będzie można łatwo wprowadzić zmiany na „produkcji”.

Ostatnią zmianą jaką należy wprowadzić w pliku konfiguracyjnym jest usunięcie fragmentu kodu („. ‘..’ ”) znajdującego się na samym końcu linii.

Czytaj dalej tutaj (rozwija treść wpisu)
Czytaj dalej na blogu autora...

Autor wpisu: batman, dodany: 05.01.2016 19:52, tagi: php

Stare powiedzenie mówi – „potrzeba matką wynalazku”. Tak się złożyło, iż idealnie pasuje ono do historii powstania najnowszej paczki do Laravela mojego autorstwa. Podczas pracy nad ostatnim projektem zauważyłem, że większość tworzonego kodu powstawała przy użyciu metody Copy’ego-Paste’a. Praca taka nie dość, że jest nudna, to dodatkowo pochłania sporo czasu (modyfikacja nazw klas, nazwy widoków, walidatory, itd.). Szybkie wyszukiwanie w serwisie packagist.org zaowocowało kilkoma paczkami oferującymi funkcjonalność generatora crud. Niestety żadna z nich nie... [[ This is a content summary only. Visit my website for full links, other content, and more! ]]

Autor wpisu: zleek, dodany: 05.01.2016 14:04, tagi: css

Usually we use quite plain structure of content on the website. Sometimes we have to point out some paragraphs on the website. If the structure is not complicated we can use unordered lists ul or ordered lists ol. Let’s think
Wszystkie wpisy należą do ich twórców. PHP.pl nie ponosi odpowiedzialności za treść wpisów.