2013-04-14 351 views
5

例如,我在mnesia中保存了{id, name},並且想要更新爲{id, name, age},每次更改模式時都必須調用transform_table嗎?更新mnesia模式最簡單的方法是什麼?

+2

你還希望能做什麼?你必須通過一些函數調用來改變表格,對吧? transform_table/{3-4}的確提供了一些選項來改變調整模式的方法。 – d11wtq

+1

是的。你必須轉換該表 –

+0

當mnesia表增長非常大時,transform_table是否需要很長時間?如果是這樣,它將影響熱碼升級的好處。如果通過另一種解決方案,跟蹤記錄版本並只升級所加載的記錄,可能會導致升級代碼繁瑣且容易出錯。 –

回答

1

最簡單的方法是刪除表並重新創建它。如果你需要保留表中的數據,mnesia:transform_table是要走的路。

+1

您是否認爲刪除並重新創建表可能會破壞生產系統。 –

+0

在大多數情況下,是的,除非在重新創建表時不讓它訪問數據庫。 'transform_table'避免了這樣的問題。 – legoscia

+0

是的,transform_table是解決這個問題的體面方法。我只是對答案給出了更廣泛的視角。 –

相關問題