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();
}
3 回答
如果删除描述数据库的文档,则表示您已禁止访问该文档 . RavenDB没有提供实际删除数据库的方法,但是如果删除描述它的文档,数据库将被关闭 . 然后,您可以根据需要删除数据库目录或进行备份 .
在2.0.3版本中(甚至可能在之前的版本中),工作室调用以下http endpoints 以删除数据库:
/管理/数据库/ nameOfYourDatabase?硬删=真
?hard-delete = true是可选的 .
基于工作室的源代码,我创建了这个函数:
我想更新您的解决方案,这是“删除”数据库的唯一解决方案 .
实际上在RavenDB的新版本(2.0)中仍然不稳定,您可以使用新版本的工作室删除数据库 .
你可以从这里下载:http://hibernatingrhinos.com/builds/ravendb-unstable-v2.0/
我希望这能帮助你顺利地对Ayende给出好的答案 .
最好,达里奥