升级到Orchard 1.10.2时出现“别名刷新期间的异常”

时间:2018-12-08 00:19:45

标签: c# orchardcms

我正在尝试从Orchard 1.9.2升级到1.10.2。

我的日志中除了以下内容之外

  

2018-12-07 23:55:27,366 [29]   Orchard.Alias.Implementation.Updater.AliasHolderUpdater-(空)-   别名刷新[http://localhost:30321/]期间发生异常   NHibernate.Exceptions.GenericADOException:无法执行查询[   选择aliasrecor0_.Id作为Id19_,选择aliasrecor0_.Path作为Path19_,   aliasrecor0_.RouteValues为RouteVal3_19_,aliasrecor0_.Source为   Source19_,aliasrecor0_.IsManaged as IsManaged19_,   Orchard_Alias_AliasRecord中的aliasrecor0_.Action_id作为Action6_19_   aliasrecor0_,其中aliasrecor0_.Id> @ p0由aliasrecor0_.Id asc排序   名称:p1-值:0 [SQL:选择aliasrecor0_.Id作为Id19_,   aliasrecor0_.Path作为Path19_,aliasrecor0_.RouteValues作为   RouteVal3_19_,aliasrecor0_.Source作为Source19_,   aliasrecor0_.IsManaged为IsManaged19_,aliasrecor0_.Action_id为   来自Orchard_Alias_Alias的Action6_19_Recordaliasrecor0_其中   aliasrecor0_.Id> @ p0按aliasrecor0_.Id asc的顺序排序] --->   System.Data.SqlClient.SqlException:无效的列名称“ IsManaged”。   无法准备声明。   ...   ...   在Orchard.Alias.Implementation.Updater.AliasHolderUpdater.Refresh()

好像已经检查了Orchard_Framework_DataMigrationRecord表并且Orchard.Alias.Migrations的版本为1一样,迁移似乎没有进行

IsManaged应该添加到Orchard.Alias模块的Migrations.cs的UpdateFrom1

public int UpdateFrom1() {
    SchemaBuilder.AlterTable("AliasRecord",
            table => table
                .AddColumn<bool>("IsManaged", column => column.WithDefault(false))
        );
    return 2;
}

罪魁祸首似乎是DefaultOrchardShell.cs中的这一行

allRoutes.AddRange(_routeProviders.SelectMany(provider => provider.GetRoutes()));

看来,在这种例外情况之前,迁移永远都没有机会运行。

我该怎么办? 我可以手动添加IsManaged,希望这是唯一的问题,但这似乎有点黑。

0 个答案:

没有答案