一个erlang数据库模式生成器

问题描述 投票:-2回答:4

有没有办法可以从erlang应用程序生成数据库模式,就像我可以用hibernate做的那样。

database hibernate erlang schema
4个回答
1
投票

我假设你的意思是Mnesia,如果是这样的话,你并不真正理解Mnesia数据库的本质。它的设计和实现是“无模式的”。您可能会编写一些非常混乱的丑陋代码,这些代码走遍了Mnesia数据库,并试图记录其中的各种记录,但这实际上是徒劳的。如果要在Mnesia中存储记录,则已在.hrl文件中具有定义记录的“模式”。


0
投票

对于erlang中的sql数据库,没有什么比nhibernate更好的了。


0
投票

看看SumoDB

概述sumo_db为您提供了一种定义数据库模式的标准方法,无论数据库实现如何(mongo,mysql,redis,elasticsearch等)。

您的实体将行为封装在代码中(即模块中的函数),并在sumo:doc()实现中进行状态。

相扑是主要模块。它将相扑内部记录转换为您自己的状态。

每个存储由一个工作池进程管理,每个进程使用一个实现sumo_store的模块并调用实际的db驱动程序(例如:sumo_store_mnesia)。

支持一些本机域事件,这些事件在创建,更新,删除实体时通过gen_event:notify / 2自动分派。此外,当创建架构并删除给定类型的所有实体时。本文介绍了事件。

使用find_by / 2和delete_by / 2函数时支持完全条件逻辑。您可以在此处找到有关此条件逻辑运算符语法的更多信息。

支持基于unsing find_by / 5和find_all / 4函数的多个字段进行排序(asc或desc)。例如,[{age,desc},{name,asc}]]将按年龄和名称进行排序。

通过sumo_changeset支持文档/模型验证(请查看Changeset部分)。


0
投票

如果您在Erlang中寻找Java hibernate类型的对象到SQL映射框架,您可能必须编写自己的映射模块。一种选择是将Erlang记录映射到SQL。任何框架都必须确保类型映射。这是Erlang的ODBC映射http://erlang.org/doc/apps/odbc/databases.html#type的链接

Erlang的ETS和Mnesia是ETS的扩展,它非常灵活,高效地管理记录。如果无法选择这两个数据库,则可能必须实现记录映射的方法

© www.soinside.com 2019 - 2024. All rights reserved.