Erlang release, установить имя узла для./bin/XXXXX start -name nonode@nohost

У меня есть база данных Mnesia, и теперь я начал с правильных версий Erlang. Я использую relx.

Однако проблема в том, что мне нужно быть совместимым с существующей базой данных mnesia, и когда она была создана, имя узла было nonode@nohost. Я видел, что для mnesia имя узла больше, чем часть имени каталога, то есть его нельзя изменить без использования резервного копирования и восстановления и некоторой обработки.

Я могу запустить релиз с

bin/XXXX console -name nonode@nohost

и база данных найдена. Тем не менее, я хотел бы использовать

bin/XXXX start -name nonode@nohost

но тогда -имя игнорируется. Когда я присоединяюсь и выполняю node(), я получаю что-то еще.

Я также нашел файл vm.args и изменил имя узла на nonode @ nohost, но получил

{error_logger,{{2015,2,14},{13,25,17}},"Неверное имя узла: ~p~n",['nonode@nohost']}

Таким образом, кажется, что кто-то действительно убедился, что имя не может быть nonode@nohost:-) Мой единственный вариант сделать так: Как переименовать Node под управлением базы данных mnesia

2 ответа

Обычно аргументы командной строки erlang помещаются в файл с именем vm.args, Вы можете найти его в каталоге релизов. В каждой строке этого файла указана опция vm, поэтому в вашем случае вам необходимо указать:

-name nonode@nohost

в этот файл.

Хорошо, похоже, что нет хороших решений. Я сделаю экспорт из старой базы данных и импортирую данные в новую, созданную с правильным именем узла.

Другие вопросы по тегам