Wyjaśnienie Migratorów (FluentMigrator)?
Czy ktoś mógłby wyjaśnić pojęcie Migratorów (w szczególności fluentmigratora)?
Oto (prawdopodobnie mylone) fakty, które zebrałem na ten temat:
Czy jest to sposób na początkowe tworzenie, a następnie aktualizowanie bazy danych za pomocą wersjonowania.
Pierwsza migracja (lub początkowa wersja bazy danych) zawierałaby wszystkie wymagane tabele, relacje i właściwości (wykonywane płynnie lub przy użyciu fragmentu sql w skrypcie).
Jeśli chcesz przesunąć zmianę do bazy danych, utwórz nową metodę migracji (w górę iw dół), na przykład dodaj nową tabelę lub zmodyfikuj pole.
Aby wdrożyć jedną z tych migracji, należy użyć wiersza polecenia określającego bibliotekę DLL zawierającą migrację, ciąg połączenia i wymaganą wersję.
Gdybyś miał dość złożony zestaw modeli danych, czy nie byłoby raczej trudne i czasochłonne stworzenie definicji migracji dla tego wszystkiego?
Wiem z nHibernate / fluent możesz łatwo generować tabele dla bazy danych bez konieczności definiowania niczego innego niż modele i pliki map. Czy istnieje sposób, aby ta konfiguracja była kompatybilna z Migrator / Versioning?
Gdy nhibernate / biegły jest odpowiedzialny za generowanie bazy danych, niekoniecznie muszę definiować każdy aspekt tabel. Wykonuje się to za pomocą konwencji lub plików mapowania. Z migrantami musiałbym zdefiniować ten poziom szczegółowości?