2013-04-14 26 views
5

Örneğin, mnesia'da {id, name} kaydını kurtardım ve {id, name, age}'a güncellemek istiyorum, şema değiştirdiğimde her zaman transform_table'u aramak zorunda mıyım?mnesia şemasını güncellemenin en kolay yolu nedir?

+2

Başka neler yapabileceğinizi umuyorsunuz? Tabloyu bazı işlev çağrıları ile değiştirmelisin, değil mi? transform_table/{3-4}, şemayı ayarlama yaklaşımını değiştirmek için size bazı seçenekler sunar. – d11wtq

+1

evet. Bu tabloyu dönüştürmek zorundasınız –

+0

mnesia tablosu çok büyüdüğünde transform_table çok uzun zaman alıyor mu? Eğer öyleyse, hot-code yükseltmelerinin faydasını etkileyecektir. Başka bir çözüm yoluyla kayıt versiyonunu takip edin ve sadece yüklenen kayıtları yükseltin, yükseltme kodunun sıkıcı ve hataya açık olmasına neden olabilir. –

cevap

1

En basit yol tabloyu silmek ve yeniden oluşturmaktır. Verileri tabloda tutmanız gerekiyorsa, gitmek için mnesia:transform_table yoldur.

+1

Tabloları silme ve yeniden oluşturma, üretim sistemini bozabileceğini düşünmüyor musunuz? –

+0

Çoğu durumda, tabloları yeniden oluştururken veritabanına erişemediğiniz sürece, evet. 'transform_table', bu tür sorunları önler. – legoscia

+0

Yep, transform_table bu tür sorunların üstesinden gelmek için iyi bir yaklaşım. Ben sadece cevaba daha geniş bir bakış açısı veriyordum. –

İlgili konular