Как извлечь данные из файла резервной копии mnesia

Описание проблемы

У меня есть файл резервной копии mnesia, и я хотел бы извлечь из него значения. Есть 3 таблицы (для простоты): «Сотрудник», «Навыки» и «Посещаемость». Таким образом, файл резервной копии mnesia содержит все эти данные из этих трех таблиц.

Таблица Emplyee:

Empid (Key) 
Name
SkillId
AttendanceId

Таблица навыков есть

SkillId (Key)
Skill Name

Таблица посещаемости

Code (Key)
AttendanceId
Percentage

Что я пробовал Я использовал

ets:foldl(Fetch,OutputFile,Table)

Fetch: это отдельная функция для просмотра выбранной записи, чтобы привести ее в желаемый формат вывода.

OutputFile: записывает в этот файл

Таблица: название таблицы

Ожидая

Я получаю записи с AttendanceId (поскольку это ключ), где я хочу получить только код. Он отображает информацию о сотрудниках и идентификатор посещаемости.

Выручи меня.


person Madhusudan Joshi    schedule 24.09.2015    source источник
comment
Как ты получил свой файл? Если с mnesia:backup, вы должны использовать mnesia:restore или mnesia:traverse_backup   -  person Lol4t0    schedule 24.09.2015
comment
Я не возвращаюсь к другой базе данных mnesia. Вместо этого мне нужно извлечь некоторые поля из резервной копии в файл.   -  person Madhusudan Joshi    schedule 25.09.2015


Ответы (1)


Резервное копирование и восстановление описаны в здесь руководства пользователя mnesia.

Чтобы прочитать существующую резервную копию без ее восстановления, используйте mnesia: traverse_backup / 4 < / а>.

1> mnesia:backup(backup_file).
ok
2> Fun = fun(BackupItems, Acc) -> {[], []} end.
#Fun<erl_eval.12.90072148>
3> mnesia:traverse_backup(backup_file, mnesia_backup, [], read_only, Fun, []).
{ok,[]}

Теперь добавьте что-нибудь в Fun, чтобы получить желаемое.

person Vance Shipley    schedule 25.09.2015