0

自 2001 年或 2002 年以来,我们一直在使用 yaf。

我们论坛的版本是 1.7,注册用户超过 250 万,这使得大量数据......

我已经制作了实际数据库的副本,并且正在尝试将此安装升级到版本 2.1.1,但是在尝试升级时,我在 mssql/tables.sql 文件上收到 SQL 错误:

文件:mssql/tables.sql

错误:索引“_dta_index_yaf_Message_9_757577737__K2_K1_K12_K6_4_5_7_8_10_11”取决于“IP”列。ALTER TABLE ALTER COLUMN IP 失败,因为一个或多个对象访问此列。

声明:如果存在(从 sys.columns 中选择 top 1 1 其中 object_id=object_id('[dbo].[yaf_Message]'Wink and name='IP' and precision < 39) begin alter table [dbo].[yaf_Message] alter列 [IP] varchar(39) not null end

YAF.Classes.Data.LegacyDb.system_initialize_executescripts(String script, String scriptFile, Boolean useTransactions) +1540 YAF.Core.Services.InstallUpgradeService.ExecuteScript(String scriptFile, Boolean useTransactions) +188 YAF.Core.Services.InstallUpgradeService.UpgradeDatabase(Boolean fullText, Boolean upgradeExtensions) +205 YAF.Install._default.Wizard_NextButtonClick(Object sender, WizardNavigationEventArgs e) +1559 System.Web.UI.WebControls.Wizard.OnBubbleEvent(Object source, EventArgs e) +584 System.Web.UI.Control .RaiseBubbleEvent(Object source, EventArgs args) +84 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3804

我必须修改一些表格字段吗?

我拥有的另一个解决方案是手动导入每个用户、论坛等,但这需要相当长的时间,所以我真的希望让安装自动升级数据库。

4

1 回答 1

0

理论上您可以执行以下操作;

  1. 备份数据库(再次)
  2. 将索引编写到新窗口。
  3. 删除索引。
  4. 应用更新。
  5. 检查数据不包含空值并在需要时进行修复。
  6. 重新创建索引。
于 2014-03-12T09:56:26.447 回答