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
в этот файл.
Хорошо, похоже, что нет хороших решений. Я сделаю экспорт из старой базы данных и импортирую данные в новую, созданную с правильным именем узла.