Команда для удаления базы данных, если она существует, и создания новой в OrientDB

Я хочу написать скрипт, который будет запускаться на консоли OrientDB. Скрипт должен удалить базу данных, если она существует, и создать новую.

Я использую следующие команды:

drop database remote:localhost/testgraphdb1 root xyz

create database remote:localhost/testgraphdb1 root xyz local graph;

Как я могу избежать ошибки, возникающей, когда команда пытается удалить базу данных, которая не существует.


person Ameer Tamboli    schedule 12.02.2014    source источник


Ответы (3)


Я использую тот же процесс выполнения «console.sh myscript.sql» и столкнулся с той же проблемой. Мой поиск привел меня сюда, и я проследил за проблемами, созданными для OrientDB. Они не рассматриваются на момент написания этой статьи. Мое решение состояло в том, чтобы обернуть оператор drop в файл myscript.sql как таковой:

set ignoreErrors true;
drop database remote:localhost/testgraphdb1 root xyz;
set ignoreErrors false;

create database remote:localhost/testgraphdb1 root xyz local graph;
person TimH    schedule 26.08.2015

Я также задал этот вопрос на форуме OrientDB. Эта функция (удалить базу данных, если она существует) не существует. Для этого будет создан новый запрос функции, и, надеюсь, это будет реализовано в ближайшее время.

https://groups.google.com/forum/#!topic/orient-database/nvW6vZmUk6k

person Ameer Tamboli    schedule 13.02.2014
comment
Вот запрос функции: #2038 - person Ameer Tamboli; 13.02.2014
comment
Посмотрите на решение TimH ниже для простого обходного пути. - person Laszlo the Wiz; 19.05.2016

Может быть, использовать блок try/catch?

try{
    drop database remote:localhost/testgraphdb1 root xyz
}catch(e){
// Print ?
}
create database remote:localhost/testgraphdb1 root xyz local graph;
person Vadorequest    schedule 12.02.2014
comment
Я не знаю, какой язык вы используете, в зависимости от языка подвох может быть таким: catch(Exception e) - person Vadorequest; 12.02.2014
comment
Выдает следующую ошибку: OrientDB console v.1.6.4 (сборка UNKNOWN@r; 2014-01-16 00:01:20+0100) www.orientechnologies.com Введите «help», чтобы отобразить все поддерживаемые команды. Установка расширений для языка GREMLIN v.2.5.0-SNAPSHOT !Неизвестная команда: 'try{' - person Ameer Tamboli; 12.02.2014
comment
Какой у тебя язык? GREMLIN? - person Vadorequest; 12.02.2014
comment
Я пишу скрипт, который будет работать на консоли OrientDB.sh - person Ameer Tamboli; 12.02.2014
comment
stackoverflow.com/questions/15656492/ Возможно это. - person Vadorequest; 12.02.2014
comment
Я запускаю console.sh myscript.sql . Он открывает консольную оболочку OrientDB, а затем запускаются команды оболочки. Таким образом, команды unix не могут выполняться в оболочке OrientDB. - person Ameer Tamboli; 13.02.2014