mnesia:create_schema()
을 각 응용 프로그램을 시작할 때 부작용이 있습니까?Erlang : mnesia 호출에 대한 부작용 : create_schema가 두 번 이상?
내가 계속 읽는 바로는이 함수는 데이터베이스 인스턴스 당 한 번 호출해야합니다. 기존 데이터베이스에서 두 번 이상 호출하는 것이 큰 문제입니까?
mnesia:create_schema()
을 각 응용 프로그램을 시작할 때 부작용이 있습니까?Erlang : mnesia 호출에 대한 부작용 : create_schema가 두 번 이상?
내가 계속 읽는 바로는이 함수는 데이터베이스 인스턴스 당 한 번 호출해야합니다. 기존 데이터베이스에서 두 번 이상 호출하는 것이 큰 문제입니까?
이전에이 작업을했는데 이미 존재하는 테이블에 경고가 울립니다. 그러나 내가 그것을 모르고있는 일부 부작용을 가지고있을 가능성이 있기 때문에 프로덕션에서 다시 실행하는 연습을하지는 않겠지 만 앞으로 출시되지 않을 것이라는 보장이 없다고해도 .
왜 여러 번 실행 하시겠습니까?
그것은 어떤 부작용이 없지만, 나중에 발생합니다 호출 {오류, {노드, {already_exists, 노드}}}.
ensure_schema() ->
Node = node(),
case mnesia:create_schema([Node]) of
ok -> ok;
{error, {Node, {already_exists, Node}}} -> ok;
Error -> Error
end.
죄송합니다. ... 답변 만 받아 들일 수 있습니다! – jldupont