4

我正在运行 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>

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

是权限问题吗?

4

2 回答 2

3

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

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

于 2012-12-16T03:37:25.407 回答
1

在 Ravendb v4 中,您可以使用CreateDatabaseOperation在服务器上创建一个新数据库。

store.Maintenance.Server.Send(
         new CreateDatabaseOperation(new DatabaseRecord("MyNewDatabase")));
于 2018-03-11T22:34:22.403 回答