Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migracja bazy powinna paść jeżeli nie jest w stanie skonwertować danych #5

Open
cameel opened this issue May 18, 2018 · 2 comments

Comments

@cameel
Copy link
Member

cameel commented May 18, 2018

Propozycja:

Migracja nie powinna próbować ad-hoc łatać problemów w danych. Jeżeli nie jest jednoznacznie określone jako skonwertować każdy wiersz danych do nowego schema, najbezpiecznieszym podejściem jest zwrócenie błędu.

  • Przykład: mamy model Osoba z polem wiek, którego wartość musi być większa lub równa 13. Chcemy zmienić pole tak, aby miało ograniczenie NOT NULL. Jeżeli istnieją jakiekolwiek wiersze z wartością NULL w polu wiek, migracja nie powinna na siłę próbować wstawić w to pole wartości domyślnej (np. 13). Nie powinna też usuwać tych wierszy. Jeżeli nie ma reguł biznesowych, które mówiłyby skąd wziąć brakujące dane, migracja powinna po prostu zakończyć się błędem.

    Ostateczne rozwiązanie problemu może jak najbardziej wymagać wstawienia wartości domyślnej lub usunięcia wiersza, ale ta decyzja może być inna w każdej sytuacji i nie powinna być podejmowana bez przeanalizowania sytuacji. Zwrócenie błędu jest najbezpieczniejszym rozwiązaniem, bo w optymistycznym przypadku problem w ogóle nie wystąpi, w pesymistycznym błąd zwróci nam na niego uwagę. Zakamuflowanie problemu jest najgorszym wyjściem, bo prowadzi do nieodwracalnej modyfikacji danych.

@Jakub89
Copy link

Jakub89 commented May 21, 2018

👍

1 similar comment
@rwrzesien
Copy link

👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants