4

RavenDB.Client2.0.2173-不安定です。マルチテナントシステムを作成しています。登録プロセスの一環として、新しいRavenデータベースを作成したいと思います。

簡単な3行のコードがあります。

  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

すでに使用しているデータベースからデータベースを作成することはできません。RavenDBシステムデータベースに接続するために、DefaultDatabaseフィールドを空白のままにします。これで、新しいテナントデータベースを作成できるようになります。

また、セッションを開いたり、インデックスを作成したり、DatabaseCommandsを使用したりするときは、テナントデータベース名を必ず渡す必要があります。

于 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 に答える