RavenDB架构迁移

时间:2014-09-12 03:36:57

标签: ravendb database-migration

我想改变我的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是否有类似的内置机制?或者任何已知的最佳实践?

1 个答案:

答案 0 :(得分:1)

这是一个答案,虽然你提问6年后!这里有GitHub上的RavenMigrations项目:

https://github.com/migrating-ravens/RavenMigrations

这是RavenDB的迁移框架,类似于您将为关系数据库找到的框架。