如何以编程方式创建给定 (json) 模式的 OrientDB 数据库?

How to programmatically create an OrientDB database of a given (json) schema?

为了我的开发工作流目的,我想在给定 JSON 模式的情况下即时创建一个新的 orientdb 数据库。我不相信这在 orientdb 中是原生支持的,是否有任何现有的解决方案可以做到这一点——提供一个 JSON 模式并指向一个 orientdb 实例,它会自动创建数据库(边、顶点、索引,也许还有一些示例数据)。

到目前为止,我发现使用存储在 JSON 或 OSQL 中的外部定义预加载模式对我来说最为成功。目前我正在使用一个包含一大堆 CREATE CLASS ...CREATE PROPERTY ... 命令的 OSQL 脚本。它运行良好。

很快我将不得不开始支持对数据模型的动态更改,此时我将不得不编写代码来读取 JSON 模式定义并将其转换为对 OrientDB 的适当调用,或者通过蓝图 API 或通过 SQL 批次。

我还没有找到可以满足您需要的工具 "automatically." 如果您找到了,请告诉我(以及这​​里的其他人)。

我最终创建了一个 .sh 脚本来动态创建数据库。 .sh 文件类似于:

# (file: createmydb.sh)

# script to create my database declaratively

set echo true

# use this to ignore errors and continue, if needed
# set ignoreErrors true

# create database
create database plocal:../databases/MyDB root root plocal graph

# create User vertex
create class User extends      V

create property User.Email                  STRING
create property User.Firstname              STRING
...

然后这样称呼它:

/usr/local/src/orientdb/bin/console.sh createmydb.sh

这很适合我的目的。数据库创建脚本非常容易阅读,可以轻松修改。而且我确信非常向后兼容(导入导出的 JSON 版本的数据库模式可能不是这种情况)。