在代码中创建新数据库 RavenDB

Dav*_*ave 5 ravendb

我正在运行 RavenDB.Client 2.0.2173-不稳定。我正在创建一个多租户系统,作为注册过程的一部分,我想创建一个新的 Raven 数据库。

我有三行简单的代码..

  string newDBName = "1234";
  IDocumentStore documentStore = new DocumentStore { Url = "http://myserver:8080",    DefaultDatabase = newDbName};
  documentStore.Initialize();
  documentStore.DatabaseCommands.EnsureDatabaseExists(newDBName);
Run Code Online (Sandbox Code Playgroud)

根据建议,我也尝试过这个:

  string newDBName = "1234";
  IDocumentStore documentStore = new DocumentStore { Url = "http://myserver:8080"};
  documentStore.Initialize();
  documentStore.DatabaseCommands.EnsureDatabaseExists(newDBName);
Run Code Online (Sandbox Code Playgroud)

我在最后一行收到 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>
Run Code Online (Sandbox Code Playgroud)

我知道我的连接/服务器可以正常工作,因为我可以从默认数据库读取/写入。

是权限问题吗?

Mat*_*int 3

您无法从已有的数据库创建数据库。将 DefaultDatabase 字段留空,以便连接到 RavenDB 系统数据库。然后您应该能够创建新的租户数据库。

您还应该确保在打开会话、创建索引和使用 DatabaseCommands 时传递租户数据库名称。

  • 用于创建数据库的内部 API 在修订版 2033 左右发生了更改。如果您的服务器早于该版本,则会解释该错误。 (2认同)