我正在研究如何在OrientDB中管理模式(使用源代码管理)。我有一个可以运行的SQL脚本,可以通过OrientDB的“ bin / console.sh”运行它来创建类和函数。我的脚本仅适用于创建新数据库,因为CREATE...
语句将第二次失败。我希望能够在进行更改后重新运行脚本。因此,我们如何有条件地做类似CREATE CLASS
或的事情CREATE PROPERTY
?
到目前为止,我尝试过使用IF
跳过这样的语句,但是IF
只允许在一个script sql...end
块中使用,如果尝试将任何CREATE...
语句放在这样的块中,则会收到错误消息:“在事务处于活动状态时,不能更改架构。” 我们唯一能想到的就是使用set ignoreErrors true
,但这远非理想,因为仍然会抛出错误,因此很难将预期的错误与实际的问题区分开。
如果我问错了问题(意味着,除了SQL脚本外,还有一种更好的方法来管理模式的源代码控制),请告诉我。
在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];
可以在官方文档中找到此功能。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句