2013-04-14 22 views
5

Na przykład zapisałem {id, name} w mnesii i chcę zaktualizować do {id, name, age}, czy muszę wywoływać transform_table przy każdej zmianie schematu?Jaki jest najprostszy sposób na aktualizację schematu mnesii?

+2

Czego innego można się spodziewać? Musisz zmienić tabelę poprzez wywołanie funkcji, prawda? transform_table/{3-4} daje ci kilka możliwości zmiany podejścia do dostosowywania schematu. – d11wtq

+1

tak. musisz przekształcić ten stół –

+0

Czy transform_table zajmuje bardzo dużo czasu, gdy mnesia staje się bardzo duża? Jeśli tak, wpłynie to na korzyści ulepszeń hot-code. Jeśli za pomocą innego rozwiązania, śledzenie wersji rekordu i tylko uaktualnienie załadowanych rekordów, może spowodować uciążliwy i podatny na błędy kod aktualizacji. –

Odpowiedz

1

Najprostszym sposobem jest usunięcie tabeli i odtworzenie jej. Jeśli chcesz zachować dane w tabeli, do zrobienia jest mnesia:transform_table.

+1

Czy nie sądzisz, że usunięcie i odtworzenie tabel może przerwać system produkcyjny. –

+0

W większości przypadków tak, chyba że uniemożliwisz mu dostęp do bazy danych podczas odtwarzania tabel. 'transform_table' pozwala uniknąć takich problemów. – legoscia

+0

Tak, transform_table to przyzwoite podejście do rozwiązania tego problemu. Po prostu podałem szerszą perspektywę odpowiedzi. –

Powiązane problemy