|
|
- -module(agDbMgr).
- -include("erlArango.hrl").
-
- -compile(export_all).
-
- %% 请注意,所有数据库管理操作只能通过默认数据库(_system)访问,而不能通过其他数据库访问。
-
- %% 检索有关当前数据库的信息
- %% GET /_api/database/current
- curDbInfo(PoolName) ->
- agHttpCli:callAgency(PoolName, ?Get, <<"/_api/database/current">>, [], undefined, infinity).
-
- %% 检索当前用户可以访问的所有数据库的列表
- %% GET /_api/database/user
- userVisitDbs(PoolName) ->
- agHttpCli:callAgency(PoolName, ?Get, <<"/_api/database/user">>, [], undefined, infinity).
-
- %% 创建一个新的数据库 注意:仅可以在_system数据库中创建新数据库。
- %% POST /_api/database
- % 具有以下属性的JSON对象是必需的:
- % name:必须包含一个有效的数据库名称。
- % users:必须是最初为新数据库创建的用户对象数组。对于已经存在的用户,不会更改用户信息。如果未指定用户或不包含任何用户,则将使用空字符串密码创建默认用户 root。这确保了新数据库在创建后将可访问。每个用户对象可以包含以下属性:
- % username:要创建的用户的登录名
- % passwd:用户密码(字符串)。如果未指定,则默认为空字符串。
- % active:一个标志,指示是否应该激活用户帐户。默认值为true。如果设置为false,则用户将无法登录数据库。
- % extra:带有额外用户信息的JSON对象。Extra中包含的数据 将为用户存储,但ArangoDB不会进一步解释
-
- newDb(PoolName, Name) ->
- NameStr = jiffy:encode(Name),
- agHttpCli:callAgency(PoolName, ?Post, <<"/_api/database">>, [], [<<"{\"name\":">>, NameStr, <<"}">>], infinity).
-
- newDb(PoolName, Name, Users) ->
-
- BodyStr = jiffy:encode(#{<<"name">> => Name, <<"users">> => Users}),
- agHttpCli:callAgency(PoolName, ?Post, <<"/_api/database">>, [], BodyStr, infinity).
-
- %% 删除现有数据库
- %% DELETE /_api/database/{database-name}
-
- delDb(PoolName, Name) ->
- Path = <<"/_api/database/", Name/binary>>,
- agHttpCli:callAgency(PoolName, ?Delete, Path, [], undefined, infinity).
|