我正在尝试对我们的Datastax DSE Graph数据库运行Gremlin模式创建脚本,脚本的第一行是schema.drop()
,但是该脚本似乎会立即转到脚本的下一行,抛出错误,表明它尝试创建的新对象仍然存在。通常,schema.drop()
大约需要一分钟左右的时间,因此看起来它并没有在等待它完成删除模式之前运行下一行脚本。
是否有一种方法可以强制脚本在schema.drop()
行之后等待,并让其完成删除架构的工作,然后再尝试运行脚本的下一行来创建新的架构?
答案 0 :(得分:0)
我给出的一般建议是避免以编程方式进行架构更改,因为在与我合作的企业中,它经常会出现问题。如果您提供有关脚本编写方式的详细信息,我们将很乐意对其进行审核并修改我的回复。
我注意到在Gremlin中添加了暂停或等待,但是可能的解决方法是破坏您的操作,以便独立于架构创建的其余部分执行schema.drop()
。通过这种解决方法,您可以(a)在操作之间手动暂停,或者(b)如果您正在运行shell脚本,然后在两者之间添加sleep
。
要注意的一件事是,在进行模式更改时执行检查很重要,以确保在执行下一个DDL之前成功完成每个DDL。干杯!
P.S。我已经在这里与DataStax的Graph小组联系,以获取推荐的处理方法。