Automatyzacja w procesie tworzenia oprogramowania jest często-gęsto traktowana po macoszemu, O tej konkretnie materiii planuję napisać wkrótce trochę więcej w osobnej notce. Dziś przykład skryptów, które mogą znacznie przyspieszyć proces tworzenia aplikacji ciągnącej dane z MySQL.
Sam kiedyś pracowałem z bazą (a raczej jej strukturą) trzymając po prostu w repozytorium pliki bazy. Przy wdrażaniu aplikacji na serwer produkcyjny generowało się skrypt z Management Studio i uruchamiało go na maszynie docelowej. Do celów programistycznych potrzebna jest jednak co i rusz czysta baza, prawdopodobnie zainicjowana jakimiś danymi startowymi. Niby to tylko kilka kliknięć…
Jednak gdy ponad rok temu rozpocząłem pracę nad projektem, w którym proces ten zastałem już zautomatyzowany, doceniłem idącą za tym wygodę oraz wzrost wydajności programisty. Rozwiązanie jest bardzo proste: wystarczą dwa pliki bat. Jeden zawiera instrukcje skryptowania całej struktury bazy do pliku sql. Drugi – uruchomienia wygenerowanego w ten sposób skryptu a zaraz po nim kolejnego, inicjalizującego bazę (prawdopodobnie danymi takie jak domyślni użytkownicy czy jakieś kategorie, ewentualnie testowe wiersze przydatne przy deweloperce).
Dla MySQL prezentują się one następująco:
[dump-database.bat] 1: ..\tools\mysqldump.exe --user root --password=sa --databases dbName --add-drop-database --no-data --compatible=no_table_options > ..\src\Database\create-database-schema.sql
1: ..\tools\mysql.exe --user root --password=sa --default-character-set utf8 dbName < ..\src\Database\create-database-schema.sql 2: ..\tools\mysql.exe --user root --password=sa --default-character-set utf8 dbName < ..\src\Database\initialize-database.sql
Kilka słów wyjaśnienia odnośnie struktury katalogów:
- instrukcje *.bat w katalogu Scripts/
- skrypty sql w katalogu src/Database
- narzędzia potrzebne do wykonania instrukcji także trzymam w repozyotorium, w katalogu tools/
Dodatkowo, aby dalej uprościć proces wywołania plików .bat z odpowiedniej ścieżki, dodałem odpowiednie komendy do wypasionego programiku SlickRun. Dzięki temu zarówno wygenerowanie (oczywiście wersjonowanego) sqla jak i jego wykonanie to raptem 4 (słownie: cztery) klawisze na klawiaturze.