您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 

88 行
4.9 KiB

-module(agDbMgr).
-include("erlArango.hrl").
-compile(inline).
-compile({inline_size, 128}).
-compile([export_all, nowarn_export_all]).
%% doc_address:https://www.arangodb.com/docs/stable/http/database-database-management.html
% 数据库信息永久链接
% 检索有关当前数据库的信息(别名/_ap/database/properties)
% GET /_api/database/current
% 检索有关当前数据库的信息
% 响应是具有以下属性的JSON对象:
% name:当前数据库的名称
% id:当前数据库的ID
% path:当前数据库的文件系统路径
% isSystem:当前数据库是否为_system数据库
% sharding:此数据库中创建的集合的默认分片方法
% ReplicationFactor:此数据库中集合的默认复制因子
% writeConcern:此数据库中集合的默认写关注点
% 返回码
% 200:如果成功检索到信息,则返回。
% 400:如果请求无效,则返回。
% 404:如果找不到数据库,则返回。
curDbInfo(PoolNameOrSocket) ->
agHttpCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_api/database/current">>, [], undefined).
% 检索当前用户可以访问的所有数据库的列表
% GET /_api/database/user
% 检索当前用户可以访问的所有数据库的列表,而无需指定其他用户名或密码。
% 返回码
% 200:如果数据库列表编译成功,则返回。
% 400:如果请求无效,则返回。
visitDbs(PoolNameOrSocket) ->
agHttpCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_api/database/user">>, [], undefined).
% 检索所有现有数据库的列表
% GET /_api/database
% 检索所有现有数据库的列表
% 注意:只能从_system数据库中检索数据库列表。
% 注意:您现在应该使用GET用户API来获取可用数据库的列表。
% 返回码
% 200:如果数据库列表编译成功,则返回。
% 400:如果请求无效,则返回。
% 403:如果请求未在_system数据库中执行,则返回。
allDbs(PoolNameOrSocket) ->
agHttpCli:callAgency(PoolNameOrSocket, ?AgGet, <<"/_api/database">>, [], undefined).
% 创建一个新的数据库
% POST /_api/database
% 具有以下属性的JSON对象是必需的:
% name:必须包含一个有效的数据库名称。
% options:可选对象,可以包含以下属性:
% sharding:用于此数据库中新集合的分片方法。有效值为:“”,“ flexible”或“ single”。前两个是等效的。(仅集群)
% ReplicationFactor:在此数据库中创建的新集合的默认复制因子。特殊值包括“ satellite”和将其禁用复制的“ satellite”(将集合复制到每个数据库服务器)和“ 1”。(仅集群)
% writeConcern:在此数据库中创建的新集合的默认写关注。它确定在不同的DBServer上同步每个分片需要多少个副本。如果集群中的副本数量很少,那么分片将拒绝写入。但是,具有足够最新副本的分片写入将同时成功。writeConcern的值 不能大于ReplicationFactor。(仅集群)
% users:必须是最初为新数据库创建的用户对象数组。对于已经存在的用户,不会更改用户信息。如果未指定users或不包含任何用户,则将使用空字符串密码创建默认用户 root。这确保了新数据库在创建后将可访问。每个用户对象可以包含以下属性:
% username:要创建的用户的登录名
% passwd:用户密码(字符串)。如果未指定,则默认为空字符串。
% active:一个标志,指示是否应该激活用户帐户。默认值为true。如果设置为false,则用户将无法登录数据库。
% extra:带有额外用户信息的JSON对象。Extra中包含的数据 将为用户存储,但ArangoDB不会进一步解释。
% 创建一个新的数据库
% 响应是一个JSON对象,其属性结果设置为true。
% 注意:仅可以在_system数据库中创建新数据库。
% 返回码
% 201:如果数据库创建成功,则返回。
% 400:如果请求参数无效或具有指定名称的数据库已存在,则返回。
% 403:如果请求未在_system数据库中执行,则返回。
% 409:如果具有指定名称的数据库已经存在,则返回。
newDb(PoolNameOrSocket, MapData) ->
BodyStr = jiffy:encode(MapData),
agHttpCli:callAgency(PoolNameOrSocket, ?AgPost, <<"/_api/database">>, [], BodyStr, true).
% 删除现有数据库
% DELETE /_api/database/{database-name}
% 路径参数
% database-name(必填):数据库的名称
% 删除数据库以及其中存储的所有数据。
% 注意:只能从_system数据库中删除数据库。该_SYSTEM数据库本身不能被丢弃。
% 返回码
% 200:如果成功删除数据库,则返回。
% 400:如果请求格式错误,则返回。
% 403:如果请求未在_system数据库中执行,则返回。
% 404:如果找不到数据库,则返回。
delDb(PoolNameOrSocket, Name) ->
Path = <<"/_api/database/", Name/binary>>,
agHttpCli:callAgency(PoolNameOrSocket, ?AgDelete, Path, [], undefined, true).