在 RavenDB 正在运行并托管其他数据库的情况下,我是否可以删除单个数据库中的所有数据?
在 RavenDB 为不同客户端托管多个数据库的生产环境中,停止 RavenDB 以删除单个数据库中的数据是不可接受的。需要自定义开发工具,逐个删除文档才能实现此目的吗?
在 RavenDB 正在运行并托管其他数据库的情况下,我是否可以删除单个数据库中的所有数据?
在 RavenDB 为不同客户端托管多个数据库的生产环境中,停止 RavenDB 以删除单个数据库中的数据是不可接受的。需要自定义开发工具,逐个删除文档才能实现此目的吗?
在2.0.3版本中(甚至可能在之前的版本中),工作室调用以下http终端以删除数据库:
/admin/databases/nameOfYourDatabase?hard-delete=true
?hard-delete=true是可选项。
根据工作室的源代码,我已经创建了这个函数:
public void DeleteDatabase(string name, bool hardDelete = false)
{
if (string.IsNullOrEmpty(name))
throw new ArgumentNullException("name");
var databaseCommands = _documentStore.DatabaseCommands;
var relativeUrl = "/admin/databases/" + name;
if (hardDelete)
relativeUrl += "?hard-delete=true";
var serverClient = databaseCommands.ForSystemDatabase() as ServerClient;
if (serverClient == null)
throw new ApplicationException("Please use a more intelligent exception here");
var httpJsonRequest = serverClient.CreateRequest("DELETE", relativeUrl);
httpJsonRequest.ExecuteRequest();
}