在 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 中转换......丑陋的方式......
有一个更好的方法吗 ?谢谢
虽然真实