更新 mnesia 模式的最简单方法是啥?

Posted

技术标签:

【中文标题】更新 mnesia 模式的最简单方法是啥?【英文标题】:What's the simplest way to update mnesia schema?更新 mnesia 模式的最简单方法是什么? 【发布时间】:2013-04-06 13:37:32 【问题描述】:

例如,我在 mnesia 中保存了id, name,想更新为id, name, age,是否每次更改架构时都必须调用transform_table

【问题讨论】:

您还希望能够做什么?您必须通过一些函数调用来更改表格,对吗?但是,transform_table/3-4 确实为您提供了一些选项来更改调整架构的方法。 是的。你必须改造那张桌子 当 mnesia 表变得非常大时,transform_table 是否需要很长时间?如果是这样,会影响热代码升级的好处。如果通过其他方案,跟踪记录版本,只升级已加载的记录,可能会导致升级代码繁琐且容易出错。 欢迎来到大数据世界,在其中移动和升级数据需要花费太多时间。您最终需要对数据进行版本化并支持多个版本。在实践中没有办法解决这个问题,尽管这很烦人。仅当数据规模较小时,数据转换才可行。 当我在生产中使用 mnesia 时,总是在每个表中添加一个 options::proplists() 列:) 【参考方案1】:

最简单的方法是删除表并重新创建它。如果您需要将数据保留在表中,mnesia:transform_table 是要走的路。

【讨论】:

您不认为删除和重新创建表可能会破坏生产系统。 在大多数情况下,是的,除非您在重新创建表时使其不访问数据库。 transform_table 避免了此类问题。 是的,transform_table 是解决此类问题的不错方法。我只是给出了更广泛的答案。

以上是关于更新 mnesia 模式的最简单方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

仅使用一次行程更新一批记录的最简单方法是啥?

从另一个组件更新组件状态的最简单方法是啥?可以说组件是兄弟姐妹吗?

从 cargo-maven2-plugin 以嵌入式模式启动 tomcat 的最简单方法是啥?

使用社交身份验证限制访问静态网站的最简单方法是啥

从IP地址获取用户纬度和经度的最简单方法是啥[关闭]

在 SQL Server 2008 中区分两个表架构的最简单方法是啥?