0

在 RavenDB 3.0 中,我想在代码中创建一个新的 RavenFS 数据库,但在 voron 引擎中。当数据库不存在时,它被创建但不是引擎。

我试过这样:

FilesStore = new FilesStore
  {
  Url = "http://localhost:8080",
  DefaultFileSystem = "Test_FS"
  };
FilesStore.Initialize();
FilesStore.CreateOrUpdate("Test_FS");

其中 Create 或 update 是一个扩展函数:

public static void CreateOrUpdate(this FilesStore filesStore, string databaseName)
    {
        try
        {
                       filesStore.AsyncFilesCommands.Admin.CreateOrUpdateFileSystemAsync(
                new FileSystemDocument
                {
                    Id = "Raven/FileSystem/"+databaseName,
                    Settings =
                {
                    {"Raven/FileSystem/DataDir", "~/FileSystems/" + databaseName},
                    {"Raven/FileSystem/Storage", "voron"},
                    {"Raven/ActiveBundles", ""}
                }
                }).Wait();
        }
        catch (Exception e)
        {
            var ex = e;
            throw;
        }

    }

我必须在创建 FileStore 时设置 DefaultFileSystem 名称,否则它会在 CreateOrUpdateFileSystemAsync 期间崩溃

所以 FileStore 本质上是创建一次,然后第二次在 voron 中转换......丑陋的方式......

有一个更好的方法吗 ?谢谢

虽然真实

4

0 回答 0