Temat: Narzędzie do baz danych
Maciek Zaremba:
Wspomnę jeszcze, że program ma też wstawiać w odpowiednie miejsca id wartości słownikowych. Bo w źródłowej bazie jest np.
place = 'Łódź' a w docelowej ma być placeid = {id dla wartości słownikowej Łódź }.
czyli przetwarzanie w locie ?
Zatem zwykły replikator Cię nie urządza.
Musisz wyszarpać rekord, przetworzyć i zapchać, oznaczyć w starej bazie że był już pchany coby nie powtórzyć operacji z danym rekordem... no i oczywiście przed zapchaniem rekordu potraktować w powyższy sposób dependencje.
Względem dependencji to relacje M2M i M2O Cię interesują, O2M jest bezbolesna. Ponadto zadbaj by na nowej bazie sekwencje miały liczniki wyżej wartościowane niż liczniki na starej bazie, bo będzie kwas :|
No i masz do wyboru - wpiąć się jakimś hibernatem czy wprost JDBC i analizować model by szarpac dependencje (bo polegniesz na spójności danych) albo natrzaskać swój ORM który takie rzeczy będzie sam z siebie czynił - ale to trudne jest.
Możesz też się oprzeć o onalizowanie metadanych i modlić się by w starej bazie wszystkie rzeczywiste referencje były jawnie zreferowane, bo jeżeli nie są a w nowej ta niedoróba zostanie poprawiona to sie posypie.
Do tego dochodzi walidacja pod kątem typu danych i wielkości przy zapychaniu - może być potrzebne obcięcie, dopełnienie wartości czy translacja typu (nie wiem w jakim stopniu są spójne schematy) dlatego analizować musisz i model wejściowy.
Masz spory rebus do rozwiązania.
To co mogę zasugerować - jeżeli bazy są spore a chcesz uniknąc potęznego klepania to nie używaj specjalizowanych encji (tabela->pojo) tylko zbuduj mechanizm generalizujący, tak by zmielił wszystko cokolwiek doń wrzucisz (możesz dokładać odpowiedni konfig do wybranych tabel by wymusić dodatkowe zachowania/określone przetworzenie... czyli cos jak sterowanie proceduralne)
Powodzenia życzę.
Temat bardzo ciekawy i dość przyjemny - jeżeli specjalizujesz się w backendzie. Jeżli backend nie jest Twoją mocną stroną to doradzam posłużyć się spychologią stosowaną bo władujesz na minę i siebie i firmę. Ten temat jest dla człowieka silnego w backendzie.