2016-12-27 120 views
7

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

+2

Dlaczego istnieje negatywny głos? Jest to prawdziwy problem. –

+0

Zbudowane narzędzie do MongoDB - obsługuje wstawianie, aktualizowanie, usuwanie, upuszczanie i sprawdzanie: https://github.com/Socialtalents/SocialTalents.MongoSync – st78

Odpowiedz

1

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.

+0

Dzięki za szczegóły –

1

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

5

Istnieje kilka narzędzi do Mongo, przykłady:

  1. 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
  2. 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