管理 Gerrit 数据库的方式

2019-04-03 0 By admin

在管理 Gerrit 服务时,有些管理操作我们没有办法在 WEB 界面中实现,需要直接操作数据库信息。而大部分用户在安装Gerrit时都会选用内置的H2数据库,如何操作H2数据库可能大部分用户并不了解。
实际上无论选择何种数据库,Gerrit都提供了两种数据库操作的命令行接口。
第一种方法是在服务器端调用gerrit.war包中的命令入口。
第二种方法是远程SSH调用接口。

一、服务器本地操作

对于第一种方法,需要在服务器端执行,而且如果使用的是H2内置数据库还需要先将Gerrit服务停止。
先以安装用户身份进入Gerrit部署目录下,在执行命令调用gerrit.war包,如下:
$ java -jar bin/gerrit.war gsql
Welcome to Gerrit Code Review 2.1.5.1
(H2 1.2.134 (2010-04-23))
Type '\h' for help. Type '\r' to clear the buffer.
gerrit>

当出现“gerrit>”提示符时,就可以输入SQL语句操作数据库了。
第一种方式需要登录到服务器上,而且操作H2数据库时还要预先停止服务,显然很不方便。但是这种方法也有存在的必要,就是不需要认证,尤其是在管理员帐号尚未建立之前就可以查看和更改数据库。

二、远程连接操作

当在Gerrit上注册了第一个帐号,即拥有了管理员帐号,正确为该帐号配置公钥之后,就可以访问Gerrit提供的SSH登录服务。
Gerrit的SSH协议提供第二个访问数据库的接口。下面的命令就是用管理员公钥登录Gerrit的SSH服务器,操作数据库(需要检查是否有相应的权限)。
$ ssh -p 29418 username@gerrit_ipaddr gerrit gsql
Welcome to Gerrit Code Review 2.1.5.1
(H2 1.2.134 (2010-04-23))
Type '\h' for help. Type '\r' to clear the buffer.
gerrit>

即连接Gerrit的SSH服务,运行命令gerrit gsql。
当连接上数据库管理接口后,便出现“gerrit>”提示符,在该提示符下可以输入SQL命令。
下面的示例中使用的数据库后端为H2内置数据库。
1、可以输入show tables命令显示数据库列表。
gerrit> show tables;
2、输入show columns命令显示数据库的表结构。
gerrit> show columns from system_config;