<div dir="ltr">I have an escript that I can run to update the data in an existing mnesia table:<div><br></div><div>







<p class="">#!/usr/bin/env escript</p>
<p class="">%% -*- erlang -*-</p>
<p class=""><br></p>
<p class="">-include("record_defs.hrl").</p>
<p class=""><br></p>
<p class="">main([NodeIn|_]) -></p>
<p class="">  Â  Â  Â  Node = list_to_atom(NodeIn),</p>
<p class="">  Â  Â  Â  ok = migrate_record_schema(Node),</p>
<p class="">  Â  Â  Â  halt().</p>
<p class=""><br></p>
<p class=""><br></p>
<p class="">migrate_record_schema(Node) -></p>
<p class="">  Â  Â  Â  MigrationFun = fun({</p>
<p class="">  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  old_record,</p>
<p class="">  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Id,</p>
<p class="">  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Name,</p>
<p class="">  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  DateCreated,</p>
<p class="">  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  DateDeactivated,</p>
<p class="">  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Password,</p>
<p class="">  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Url</p>
<p class="">  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  }) -></p>
<p class="">  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  {</p>
<p class="">  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  new_record,</p>
<p class="">  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Id,</p>
<p class="">  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Name,</p>
<p class="">  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  DateCreated,</p>
<p class="">  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  DateDeactivated,</p>
<p class="">  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Password,</p>
<p class="">  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Url,</p>
<p class="">  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  false</p>
<p class="">  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  }</p>
<p class="">  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  end,</p>
<p class="">  Â  Â  Â  {atomic, ok} = rpc:call(Node, mnesia, transform_table, [old_record, MigrationFun, record_info(fields, new_record)]),</p>
<p class="">  ok.</p><div>The problem I have is that when I deploy the code that uses this new record schema and update the schema, this new transformed data gets replicated to the other clustered nodes as well.</div><div>
<br></div><div>So, what I was hoping to do was create a new table say new_record, that I place the transformed records into. The new code will reference that table. The yet-to-be-upgraded nodes will still continue to reference the old schema until they get the new code deployed.</div>
<div><br></div><div>Is this possible without jumping through major hoops? Or, maybe I'm missing a simpler solution?</div><div><br></div><div>Any help would be greatly appreciated.</div><div><br></div><div><br></div></div>
</div>