我正在运行RavenDB.Client 2.0.2173-Unstable。我正在创建一个多租户系统,作为我的注册过程的一部分,我想创建一个新的Raven数据库。
我有三行简单的代码..
string newDBName = "1234";
IDocumentStore documentStore = new DocumentStore { Url = "http://myserver:8080", DefaultDatabase = newDbName};
documentStore.Initialize();
documentStore.DatabaseCommands.EnsureDatabaseExists(newDBName);
根据建议,我也试过这个:
string newDBName = "1234";
IDocumentStore documentStore = new DocumentStore { Url = "http://myserver:8080"};
documentStore.Initialize();
documentStore.DatabaseCommands.EnsureDatabaseExists(newDBName);
我在最后一行得到一个InvalidOperationException,Raven告诉我它无法弄清楚要做什么。
<h1>Could not figure out what to do</h1>
<p>Your request didn't match anything that Raven knows to do, sorry...</p>
我知道我的连接/服务器正常工作,因为我能够从默认数据库中读/写。
是权限问题吗?
答案 0 :(得分:3)
您无法从已存在的数据库创建数据库。将DefaultDatabase字段留空,以便连接到RavenDB系统数据库。然后,您应该能够创建新的租户数据库。
您还应确保在打开会话,创建索引和使用DatabaseCommands时传递租户数据库名称。
答案 1 :(得分:1)
在Ravendb v4中,您可以使用 CreateDatabaseOperation 在服务器上创建新数据库。
store.Maintenance.Server.Send(
new CreateDatabaseOperation(new DatabaseRecord("MyNewDatabase")));