Jako osoba, która regularnie zajmowała się aktualizacją produkcyjnej bazy danych dla klientów dla naszych aktualizacji oprogramowania, mówię wam, że najlepszym sposobem na zminimalizowanie błędów jest dokonywanie aktualizacji tak prosto, jak to możliwe.
Jeśli możesz dokonać zmiany we wszystkich rekordach, a nie w konkretnych, lepiej jest to zrobić.
Innymi słowy, jeśli otrzymasz listę identyfikatorów rekordów, które wymagają zmiany ich stanu, powinieneś zadać sobie pytanie, dlaczego aktualizacja jest wykonywana w kontekście programu. Może być tak, że z 10 rekordów, które musisz zaktualizować, tabela zawiera tylko 10 elementów. Dlatego powinieneś zadać sobie pytanie, czy koncepcyjnie wszystko, co robisz, to aktualizowanie stanu wszystkich rekordów.
Jeśli możesz wstawić, najlepiej.
Dodanie rekordu jest samodzielne. Rozumiem przez to, że istnieje tylko jeden efekt uboczny dodania rekordu, i jest nim rekord, który wcześniej nie istniał. Dlatego jeśli nie dodajesz rekordu, którego nie powinno tam być, nie powinno być żadnych problemów.
Jeśli możesz uniknąć usunięcia, lepiej jest.
Jeśli usuwasz, usuwasz dane, które w innym przypadku byłyby niemożliwe do odzyskania bez kopii zapasowej. Jeśli to możliwe, spróbuj uporządkować dane w taki sposób, aby można było wyłączyć rekordy, zmieniając ich stan, a nie usuwając fizycznie rekord. Nadmiar danych można umieścić na partycji lub całkowicie usunąć w późniejszym momencie, gdy masz pewność, że nie ma żadnych problemów.
Miej spójne zasady aktualizacji.
Jeśli musisz zaktualizować rekord, może się zdarzyć jedna z kilku rzeczy:
- Twój rekord nie istnieje.
- Twój rekord istnieje, ale został już zmieniony.
- Twój rekord istnieje i wymaga zmiany.
Musisz mieć politykę określającą kierunek działania, jeśli coś nie pójdzie zgodnie z planem. Dla uproszczenia powinieneś być konsekwentny i stosować tę politykę w każdej sytuacji tego typu, nie tylko w przypadku określonych tabel. Ułatwia to późniejsze odzyskiwanie danych. Ogólnie rzecz biorąc, moją zasadą jest pisanie skryptu w taki sposób, aby móc go później ponownie uruchomić. Jeśli skrypt się nie powiedzie, miło jest wiedzieć, że możesz wprowadzić odpowiednie poprawki i wykonać je ponownie, jednak możesz wybrać własną politykę, która najbardziej Ci odpowiada.
Kopie zapasowe
W żadnym wypadku nie usprawiedliwia to wykonania kopii zapasowej przed wykonaniem jakiejkolwiek aktualizacji w środowisku produkcyjnym! Chociaż nawet w przypadku kopii zapasowej uważam, że nie trzeba jej używać. Utrata danych nie może być możliwa nawet w najgorszym przypadku .
Wniosek
Nie zawsze będziesz w stanie mieć to po swojemu. Schemat tabeli prawdopodobnie nie zostanie określony przez Ciebie, a zatem oznacza to, że typy aktualizacji, których możesz oczekiwać, będą zarówno skomplikowane, jak i ryzykowne. Jeśli jednak masz coś do powiedzenia w tej sprawie, warto pamiętać o tych kwestiach, ponieważ wprowadzają one wszelkie aktualizacje bezpośrednio i bez znaczącego ryzyka.
Powodzenia!