таблица мнезии отсутствует или таблица не загружена - PullRequest
2 голосов
/ 12 апреля 2011

Как определить разницу между таблицей, отсутствующей в схеме, и таблицей, которая еще не загружена?

В настоящее время я использую mnesia: wait_for_tables () с относительно большим тайм-аутом для обнаружения таблицы, но это бесполезно (что происходит, если для запуска таблицы действительно требуется много времени) и отнимает много времени (если таблица действительно не есть).

Ответы [ 2 ]

1 голос
/ 06 мая 2011

mnesia: table_info / 2 может помочь.

  1. Если вы заранее знаете имена таблиц и хотите знать, на каких узлах есть данные,

    mnesia:table_info(TableName, StorageType).
    

    StorageType должен быть одним из

    ram_copies, disc_copies or disc_only_copies.
    
  2. или, если вы хотите знать, что локальный узел имеет копию таблицы, просто

    mnesia:table_info(TableName, storage_type).
    

    Если локальный узел НЕ имеет копии, возвращается «неизвестно».

1 голос
/ 27 апреля 2011

Может быть, попытаться ...

lists:member(table_name, mnesia:table_info(schema, tables)).

Это всего лишь предположение, но оно может стать основой для эксперимента, если никто не может дать окончательный ответ.

...