我想改变我的RavenDB"架构"并在启动ASP.Net MVC Web应用程序时执行迁移。
Patching机制似乎符合目的,我尝试使用它:
store.DatabaseCommands.UpdateByIndex(
"Raven/DocumentsByEntityName",
new IndexQuery
{
Query = "Tag:LogEntries",
},
new ScriptedPatchRequest()
{
Script = @"
this.IsDeleted = false;
"
}
).WaitForCompletion();
问题是,如果索引过时,Patch将抛出异常。但我确实需要确保在继续运行应用程序之前执行了迁移。有没有更好的选择,而不是将其包装成类似的东西:
while (true)
{
try
{
RunPatch();
break;
}
catch (Exception)
{
}
}
使用Entity Framework或NHibernate(FluentMigrations),可以轻松编写Migration类,为其分配版本,然后需要迁移将按正确顺序自动执行。
Raven是否有类似的内置机制?或者任何已知的最佳实践?
答案 0 :(得分:1)
这是一个答案,虽然你提问6年后!这里有GitHub上的RavenMigrations项目:
https://github.com/migrating-ravens/RavenMigrations
这是RavenDB的迁移框架,类似于您将为关系数据库找到的框架。