命令行工具
OrientDB提供了一个命令行工具,是个JAVA程序连接和操作OrientDB数据库和服务器实例。
命令行模式
OrientDB提供两种模式:交互模式和批量模式。
交互模式
默认以交互模式打开。在这个模式下,会有一个orientdb>
提示符。你可以在窗口中执行命令和sql语句。
你可以通过执行bin目录下的console.sh
(windows下是bat后缀)脚本打开。运行需要执行权限。
$ cd $ORIENTDB_HOME/bin
$ ./console.sh
OrientDB console v.X.X.X (build 0) www.orientdb.com
Type 'HELP' to display all the commands supported.
Installing extensions for GREMLIN language v.X.X.X
orientdb>
从这里,你可以运行SQL语句和命令了。命令参考commands。
批量模式
批量模式下,把命令作为参数传递给console.sh
。
Command-line: 从命令行中执行,将命令以字符串方式,多个命令以分号分隔。
$
$ORIENTDB_HOME/bin/console.sh "CONNECT REMOTE:localhost/demo;SELECT FROM Profile"
Script Commands: 把命令放在文本文件中,文件名作为参数。
$
vim commands.txt
CONNECT REMOTE:localhost/demo;SELECT FROM Profile
$$ORIENTDB_HOME/bin/console.sh commands.txt
忽略错误
在批量模式下,可以通过ignoreErrors
忽略执行中的错误继续执行.
$ vim commands.txt
SET ignoreErrors TRUE
开启echo
批量模式下,执行命令,希望输出执行的信息,在命令行的开头设置echo
。
$ vim commands.txt
SET echo TRUE
命令
OrientDB实现了很多SQL语句和命令。你可以使用HELP
或者?
获取命令的信息。
命令 | 描述 |
---|---|
ALTER CLASS |
变更类的模式 |
ALTER CLUSTER |
变更簇的属性 |
ALTER DATABASE |
变更数据库的属性 |
ALTER PROPERTY |
变更类的属性 |
BACKUP DATABASE |
备份数据库 |
BEGIN |
开启一个新事务 |
BROWSE CLASS |
遍历一个类的所有记录 |
BROWSE CLUSTER |
遍历一个簇的所有记录 |
CLASSES |
显示所有的类 |
CLUSTER STATUS |
显示分布式集群中服务器的状态 |
CLUSTERS |
显示所有配置的簇 |
COMMIT |
提交一个激活的事务 |
CONFIG |
显示当前打开的数据库的所有配置 |
CONFIG GET |
返回一个配置的值 |
CONFIG SET |
设置配置 |
CONNECT |
连接数据库 |
CREATE CLASS |
创建一个新类 |
CREATE CLUSTER |
在数据库中创建一个簇 |
CREATE DATABASE |
创建一个新的数据库 |
CREATE EDGE |
创建一个边连接顶点 |
CREATE INDEX |
创建一个索引 |
CREATE LINK |
创建一个连接 |
CREATE VERTEX |
创建一个顶点 |
DECLARE INTENT |
声明数据库的目标 |
DELETE |
使用SQL语法删除记录,SQL语法 |
DICTIONARY GET |
在字典中寻找记录,如果找到设置为当前记录 |
DICTIONARY PUT |
插入或者修改数据库字典中的一条目录,目录由key=String, value=record-id组成 |
DICTIONARY REMOVE |
删除字典中的一条目录 |
DISCONNECT |
断开当前数据库连接 |
DISPLAY RECORD |
显示当前记录的所有属性 |
DISPLAY RAW RECORD |
显示当前记录的原始格式 |
DROP CLASS |
删除类 |
DROP CLUSTER |
删除簇 |
DROP DATABASE |
删除数据库 |
DROP INDEX |
删除索引 |
DROP PROPERTY |
从类的模式中删除属性 |
EXPLAIN |
剖析查询计划 |
EXPORT DATABASE |
导出数据库 |
EXPORT RECORD |
导出记录 |
FIND REFERENCES |
找到关联该记录的所有记录 |
FREEZE DATABASE |
冻结数据库,锁住所有更新。使用这个命令做备份。使用RELEASE DATABASE 解冻 |
GET |
返回属性的值 |
GRANT |
给用户赋予权限 |
GREMLIN |
执行Gremlin脚本 |
IMPORT DATABASE |
导入以前导出的数据库 |
INDEXES |
显示索引的信息 |
INFO |
显示当前状态 |
INFO CLASS |
显示类的所有信息 |
INSERT |
SQL语法插入一条新纪录,SQL 语法 |
JS |
在当前命令行窗口执行JS脚本 |
JSS |
在服务器上执行JS脚本 |
LIST DATABASES |
列举当前数据库列表 |
LOAD RECORD |
把记录加载到内存并设置成当前记录 |
PROFILER |
控制 剖析器 |
PROPERTIES |
返回所有配置的属性 |
pwd |
显示当前目录 |
REBUILD INDEX |
重建一个索引 |
RELEASE DATABASE |
解锁一个 Console Freeze Database冻结的数据库 |
RELOAD RECORD |
重新加载一条记录到内存,设置为当前记录 |
RELOAD SCHEMA |
加载模式 |
ROLLBACK |
回滚由begin激活的事务 |
RESTORE DATABASE |
恢复一个数据库 |
SELECT |
SQL语法的查询语句 |
REVOKE |
撤销一个用户的权限 |
SET |
改变属性的值 |
SLEEP |
在脚本中使用,睡眠一段时间 |
TRAVERSE |
遍历记录的图 |
TRUNCATE CLASS |
清空一个类的所有记录(通过清空类下的所有簇) |
TRUNCATE CLUSTER |
清空一个簇的所有记录 |
TRUNCATE RECORD |
清空一个因为损坏无法删除的数据 |
UPDATE |
SQL语法更新记录 |
HELP |
打印帮助 |
EXIT |
关闭当前命令窗口 |
自定义命令
除了OrientDB实现的命令,可以自己开发命令。编辑类OConsoleDatabaseApp,增加新的方法。有一个自动发现的机制可以将新增的方法放到可执行命令中,只需要使用注解@ConsoleCommand
。命令的名称遵循Java骆驼命名格式。
例如,增加命令MOVE CLUSTER
:
@ConsoleCommand(description = "Move the physical location of cluster files")
public void moveCluster(
@ConsoleParameter(name = "cluster-name", description = "The name or the id of the cluster to remove") String iClusterName,
@ConsoleParameter(name = "target-path", description = "path of the new position where to move the cluster files") String iNewPath ) {
checkCurrentDatabase(); // THE DB MUST BE OPENED
System.out.println("Moving cluster '" + iClusterName + "' to path " + iNewPath + "...");
}
代码增加后,编译部署启动,MOVE CLUSTER
就可以使用HELP
来找到。
orientdb> HELP
AVAILABLE COMMANDS:
AVAILABLE COMMANDS:
* alter class Alter a class in the database schema
* alter cluster Alter class in the database schema
... ...
* move cluster Move the physical location of cluster files
... ...
* help Print this help
* exit Close the console
orientdb> MOVE CLUSTER foo /temp
Moving cluster 'foo' to path /tmp...
如果你开发了一个特别有用的命令,可以贡献给社区OrientDB Community!