| Termin | Definicja |
|---|---|
| Scripting baz danych | Scripting baz danych to generowanie skryptów odtwarzających strukturę obiektów, wykorzystywane przy migracjach. Na czym polega scripting baz danychScripting baz danych oznacza przygotowanie skryptów opisujących sposób utworzenia, zmiany albo odtworzenia elementów bazy danych. Najczęściej są to polecenia języka SQL należące do grupy DDL, czyli Data Definition Language. Skrypt może definiować między innymi tabele, kolumny, typy danych, klucze główne, klucze obce, ograniczenia integralności, indeksy, widoki oraz procedury składowane, jeżeli dany silnik bazy danych je obsługuje. W odróżnieniu od eksportu samych rekordów skrypt strukturalny koncentruje się na metadanych i obiektach opisujących organizację danych. Wygenerowany skrypt może odtworzyć strukturę w pustej bazie albo wprowadzić określoną zmianę do już istniejącego schematu. Przykładem jest dodanie kolumny, utworzenie indeksu dla często wyszukiwanego pola lub wprowadzenie ograniczenia wymuszającego unikalność wartości. Zakres generowanego materiału zależy od używanego silnika, narzędzia oraz wybranych obiektów. Różne systemy baz danych mają odmienne dialekty SQL, typy danych i mechanizmy rozszerzające standard, dlatego skrypt przygotowany dla jednego silnika nie musi być bezpośrednio wykonywalny w innym. Obiekty, zależności i kolejność wykonywaniaIstotną częścią scriptingu jest uwzględnienie zależności między obiektami. Tabela odwołująca się kluczem obcym do innej tabeli wymaga istnienia tabeli nadrzędnej przed utworzeniem ograniczenia referencyjnego. Widok korzystający z tabel musi zostać zdefiniowany dopiero po utworzeniu tych tabel, a obiekt zależny od określonej funkcji lub typu danych również wymaga odpowiedniej kolejności. Narzędzia generujące skrypty analizują metadane, aby zapisać polecenia w kolejności zwiększającej szansę poprawnego odtworzenia struktury. Nie wszystkie zależności są widoczne wyłącznie w definicji tabel. Znaczenie mogą mieć także schematy, sekwencje, domyślne wartości, uprawnienia, sortowania, rozszerzenia silnika oraz ustawienia związane z kodowaniem znaków. Dlatego przed wykonaniem skryptu należy sprawdzić, czy środowisko docelowe posiada wymagane funkcje i czy użytkownik wykonujący operację ma odpowiednie uprawnienia. Błąd w jednym obiekcie może przerwać dalsze wykonywanie albo pozostawić bazę w stanie częściowo zmienionej struktury, zależnie od możliwości transakcyjnych konkretnego silnika i sposobu uruchomienia skryptu. Scripting w migracjach i kontroli zmianW migracjach skrypt stanowi zapis przejścia ze starszej wersji struktury do nowszej. Zamiast tworzyć całą bazę od początku, można przygotować kolejne, uporządkowane zmiany: utworzenie nowej tabeli, dodanie kolumny, przekształcenie indeksu albo zmodyfikowanie ograniczenia. Taki zapis ułatwia ustalenie, jakie operacje wykonano i w jakiej kolejności. W praktyce skrypt migracyjny powinien być dopasowany do rzeczywistego stanu bazy, ponieważ polecenie zakładające istnienie konkretnego obiektu może zakończyć się błędem, gdy obiekt został wcześniej usunięty, przemianowany albo utworzony w inny sposób. Przydatną cechą skryptów jest powtarzalność, określana często jako idempotencja. Operacja idempotentna po wielokrotnym wykonaniu prowadzi do tego samego stanu, zamiast za każdym razem tworzyć kolejny obiekt lub powodować konflikt. Nie każdą zmianę da się jednak bezpiecznie wykonać wielokrotnie. Dodanie kolumny, przebudowa indeksu lub zmiana typu danych może wymagać warunku sprawdzającego stan obiektu, osobnego skryptu cofającego albo ręcznej weryfikacji. Przed migracją należy wykonać kopię zapasową danych, sprawdzić planowane polecenia na środowisku testowym i potwierdzić, że zmiana nie narusza istniejących relacji oraz aplikacji korzystających z bazy. Weryfikacja skryptu przed odtworzeniem strukturyOcena wygenerowanego skryptu obejmuje sprawdzenie nazw obiektów, typów danych, kluczy, indeksów, ograniczeń i zależności. Należy porównać skrypt ze źródłową strukturą oraz zweryfikować, czy nie pominięto elementów wymaganych przez aplikację. Szczególnej uwagi wymagają zmiany mogące wpływać na istniejące rekordy, takie jak skrócenie długości kolumny, usunięcie wartości domyślnej lub wprowadzenie ograniczenia unikalności w tabeli zawierającej już powtarzające się dane. Sam fakt wygenerowania poleceń nie oznacza, że migracja jest bezpieczna. Jeżeli problem dotyczy laptopa lub komputera PC, diagnostyka może obejmować sprawdzenie środowiska uruchomieniowego, połączenia z bazą, komunikatów błędów, wersji używanego oprogramowania oraz uprawnień konta. Trzeba odróżnić błąd samego skryptu od problemu z konfiguracją, niedostępnym silnikiem, uszkodzonym plikiem projektu albo niezgodnością wersji. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów i komputerów, w tym diagnostyką problemów z oprogramowaniem oraz podzespołami używanymi do pracy z bazami danych. |