在OrientDB中,如何编写数据库模式创建/更新SQL脚本?

时间:2016-10-22 04:09:26

标签: orientdb

我正在研究如何在OrientDB中管理模式(使用源代码控制)。我有一个工作的SQL脚本,可以通过OrientDB的“bin / console.sh”运行来创建类和函数。我的脚本仅适用于创建新数据库,因为CREATE...语句将第二次失败。我希望能够在进行更改时重新运行脚本。那么,我们如何有条件地执行CREATE CLASSCREATE PROPERTY

等事情

到目前为止,我尝试使用IF来跳过此类语句,但IF仅允许在script sql...end块中,并且如果您尝试放置任何CREATE...语句在这样的块中,您会收到错误:“在事务处于活动状态时无法更改架构。”我们唯一能够想到的就是使用set ignoreErrors true,但这远非理想,因为错误仍然会被抛出,因此很难将预期错误与实际问题区分开来。

如果我提出错误的问题(意思是除了SQL脚本之外还有一种更好的方法来管理架构的源代码控制),请告诉我。

1 个答案:

答案 0 :(得分:0)

在OrientDB v2.2.13中,有一个新的“IF EXISTS”子句,它允许您使用相同的脚本正常创建或更新数据库。它是CREATE和DROP语句的一部分:

CREATE CLASS <class> [IF NOT EXISTS] ...;
CREATE PROPERTY <class>.<property> [IF NOT EXISTS] ...;
DROP CLASS <class> [IF EXISTS];
DROP PROPERTY <class>.<property> [IF EXISTS];

此功能可在official documentation

中找到