Niedawno napotkaliśmy problem. Chcemy przeprowadzić wersjonowanie jako zarządzanie poprawkami (podobne do git dla codebase) zarówno dla naszych zmian schematu bazy danych Mongodb i Cassandra, jak i aktualizacji/wstawiania zapytań. Liquibase obsługuje go tylko dla mysql. Potrzebujemy alternatywy Liquibase dla nosql mongodb i cassandra.Potrzebujesz alternatywę Liquibase dla baz danych mongodb i/lub Kasandra
Odpowiedz
Nie sądzę, że kiedykolwiek zobaczysz takie narzędzie dla Mongo. Powodem jest to, że Mongo nie ma prawdziwego wymuszania schematu i dlatego musisz pytać i przekształcać. Innymi słowy, aby to zrobić, musisz napisać własne skrypty. Jest to jeden z powodów, dla których zdecydowanie zalecam umieszczenie numeru wersji struktury danych w strukturze danych i umieszczenie na niej dodatkowego indeksu.
Dla Cassandry problemy są różne, a zmiana struktur danych może być również trochę bolesna. Ponownie takie narzędzie może dodawać lub usuwać kolumny, ale nie będzie w stanie adresować map, typów list ani tym podobnych. Wątpię, aby problemy były wystarczająco dobrze zrozumiałe w przypadku ogólnych narzędzi, ale z pewnością wystarczy spojrzeć na https://github.com/comeara/pillar.
Dla Mongo rozwiązanie będzie wyglądało bardziej jak skrypt, który wyciąga stare struktury i zapisuje je ponownie z nowymi informacjami. Dla Cassandry, słupek może pomóc w jego części, ale w przypadku niektórych typów może być konieczne zrobienie czegoś więcej. Należy pamiętać, że typy kolekcji w Cassandra nie są tak naprawdę strukturalnie egzekwowane przez schemat.
Dzięki za szczegóły –
Napisałem bardzo prosty wniosek o podstawowe wsparcie aktualizacji programu w Kasandra. proszę zobaczyć: enter link description here
Podstawowe zastosowanie to: java -jar Cassandra-scheme.jar --cassandra.keyspace = myspace --scheme.dir =/mydir
Istnieje kilka narzędzi do Mongo, przykłady:
Mongeez:
- https://github.com/mongeez/mongeez
- zalety
- zachować skrypty w plikach .js.
- plik XML do organizowania im
- jeśli używasz Java, Mongeez może być zintegrowany z wiosną, więc można uruchomić skryptów przy uruchomieniu aplikacja
- Wady:
- martwy projekt
- użyj
db.eval()
, która jest przestarzała w MongoDB od wersji 3.0
Mongobee:
- https://github.com/mongobee/mongobee
- zalety:
- cały kod w Javie
- łatwo zintegrować z wiosny
- dobry tutorial jak go używać
- wady:
- Wszystkie skrypty muszą być wykonane w języku Java, nie mógł zapisać je w JS
Jest gałąź rozwidlona z Flywaya, która wydaje się wspierać mongoDB: https://github.com/risksense/flyway/tree/release-4.0.3-mongodb
Nie testowałem jeszcze, ale wydaje się obiecujące.
Dlaczego istnieje negatywny głos? Jest to prawdziwy problem. –
Zbudowane narzędzie do MongoDB - obsługuje wstawianie, aktualizowanie, usuwanie, upuszczanie i sprawdzanie: https://github.com/Socialtalents/SocialTalents.MongoSync – st78