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.
- 1. Jakieś korzyści z używania Liquibase do migracji baz danych?
- 2. Zarządzanie zmianami dla graficznych baz danych?
- 3. MongoDB lista dostępnych baz danych w java
- 4. Czy potrzebujesz Solr/Lucene dla MongoDB, CouchDB i Cassandra?
- 5. Jak utworzyć kolekcję baz danych mongodb bez dodawania żadnych danych?
- 6. A Alternatywę opensource dla basecamp?
- 7. Chcę projektować alternatywę dla singletona
- 8. uprawnienia MongoDB: ograniczyć dostęp do dwóch baz danych
- 9. Prosty edytor dla baz danych BSON
- 10. Wiele baz danych SQLite dla wielu języków?
- 11. Co DB dla dużych baz danych?
- 12. Normalizacja baz danych dla systemu zarządzania szkołą
- 13. columnDefinition = „text” dla wszystkich typów baz danych
- 14. Migracja baz danych dla Entity Framework 4
- 15. Hadoop na bazie bazy danych Kasandra
- 16. Liquibase - jak wygenerować dziennik zmian dla istniejącej bazy danych
- 17. Szyny z dwóch różnych baz danych
- 18. odpytywanie różnych baz danych
- 19. MagicalRecord: wiele baz danych
- 20. Scalanie baz danych szyn
- 21. Korzystanie z liquibase na istniejącej bazie danych
- 22. Liquibase vs Flyway, którego należy użyć?
- 23. Czy wykresy baz danych mogą efektywnie dystrybuować dane między węzłami?
- 24. PropelORM v1 wiele baz danych
- 25. Potrzebujesz samouczka dla DotNetOpenAuth
- 26. SQLAlchemy i wiele baz danych
- 27. Liquibase dropFirst z PostGIS
- 28. GNU czynić wieloznaczną alternatywę?
- 29. Wiele baz danych w Ecto
- 30. Rails baz danych wartości logiczne
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