2012-07-10 11 views
8

Pracuję na serwerze node.js i używam MongoDB z węzłem-mongo-native. Szukam struktury migracji bazy danych podobnej do migracji Rails. Wszelkie zalecenia?Framework migracji węzła-mongo

+0

Proszę sprawdzić tę odpowiedź: http://stackoverflow.com/a/34271611/5589395 –

Odpowiedz

8

Nie jestem świadomy określonego natywnego narzędzia Node.js do wykonywania migracji MongoDB .. ale istnieje możliwość użycia narzędzi napisanych w innych językach (na przykład Mongoid Rails Migrations).

Warto zauważyć, że podejście do Schema design i modelowania danych w MongoDB różni się od relacyjnych baz danych. W szczególności nie ma wymogu, aby kolekcja miała spójny lub wstępnie zadeklarowany schemat, więc wiele tradycyjnych działań migracyjnych, takich jak dodawanie i usuwanie kolumn, nie jest wymagane.

Jednak migracje, które wymagają transformacji danych, mogą być nadal przydatne.

Jeśli Twoja aplikacja oczekuje, że dane mają określony format (np. Chcesz podzielić pole "nazwa" na "imię" i "nazwisko"), możesz zastosować kilka strategii, jeśli pomysł za pomocą narzędzi migracji napisane w innym języku programowania nie jest atrakcyjne:

  • różnice danych uchwyt twojej logiki aplikacji, tak stare i nowe formaty danych są zarówno do zaakceptowania (może „modernizacja” rekordy pasujących do nowszego formatu, ponieważ są one zaktualizowany)
  • napisać skrypt, aby zrobić jednorazową migrację danych
  • przyczynić pomocników MongoDB do node-migrate
+0

Dzięki za informacje. Te opcje brzmią rozsądnie. Wygląda na to, że najbardziej "węzłowym" rozwiązaniem jest migracja z węzłem lub rozwiązanie homebrew. –

+0

node-migrate wygląda dobrze: Czy mogę używać mangusty wewnątrz mojej góry i na dół? Muszę również przeprowadzić transformację danych w mojej bazie danych w dev, test i prod. Czy istnieje sposób uruchomienia tego skryptu migracji w innym środowisku? – chovy

6

Właśnie skończyłem pisać podstawowe ramy migracji na podstawie węzła-mongo-native: https://github.com/afloyd/mongo-migrate. Umożliwi to migrację do góry o &, a także migrację w górę/w dół do określonego numeru wersji. Początkowo był oparty na migracji węzłów, ale oczywiście musiał zostać nieco zmieniony, aby działał.

Historia zmian jest przechowywana w mongodb, a nie w systemie plików, jak migracja węzła, umożliwiając współpracę nad tym samym projektem przy użyciu pojedynczej bazy danych. W przeciwnym razie każdy programista uruchamiający migracje może spowodować, że migracje będą uruchamiane więcej niż jeden raz w bazie danych.

Same migracje są oparte na plikach, a także pomagają we współpracy przy pojedynczym projekcie, w którym każdy programista (lub nie) nie korzysta z tej samej bazy danych. Gdy więc każdy programista uruchomi migrację, uruchomione zostaną wszystkie pliki migracji, które nie zostały jeszcze uruchomione w jego bazie danych.

Aby uzyskać więcej informacji, sprawdź numer documentation.

Powiązane problemy