【问题标题】:Timestamp problem in mediawiki after upgrade to 1.32升级到 1.32 后 mediawiki 中的时间戳问题
【发布时间】:2019-11-20 11:37:57
【问题描述】:

从 1.28 更新到 1.32 后:

1.32的链接:http://wikijoo.ir/32

1.28的链接:http://wikijoo.ir

1.32.0
PHP 7.0.33-0ubuntu0.16.04.5 (apache2handler)
MySQL   5.7.25-0ubuntu0.16.04.2
ICU 55.1
Lua 5.1.5
MediaWiki internal error.

原来的例外:

Wikimedia\Assert\ParameterAssertionException from line 63 of /var/www/html/32/vendor/wikimedia/assert/src/Assert.php: Bad value for parameter $row->rev_timestamp: must be a valid timestamp

回溯:

#0 /var/www/html/32/includes/Revision/RevisionStoreRecord.php(73): Wikimedia\Assert\Assert::parameter(boolean, string, string)

#1 /var/www/html/32/includes/Revision/RevisionStore.php(1794): MediaWiki\Revision\RevisionStoreRecord->__construct(Title, User, CommentStoreComment, stdClass, MediaWiki\Revision\RevisionSlots, boolean)

#2 /var/www/html/32/includes/Revision/RevisionStore.php(2757): MediaWiki\Revision\RevisionStore->newRevisionFromRow(stdClass, integer, Title)

#3 /var/www/html/32/includes/Revision.php(1308): MediaWiki\Revision\RevisionStore->getKnownCurrentRevision(Title, integer)

#4 /var/www/html/32/includes/page/WikiPage.php(744): Revision::newKnownCurrent(Wikimedia\Rdbms\DatabaseMysqli, Title, integer)

#5 /var/www/html/32/includes/page/WikiPage.php(766): WikiPage->loadLastEdit()

#6 /var/www/html/32/includes/page/WikiPage.php(638): WikiPage->getRevision()

#7 /var/www/html/32/includes/libs/objectcache/WANObjectCache.php(1277): WikiPage->{closure}(boolean, integer, array, NULL)

#8 /var/www/html/32/includes/libs/objectcache/WANObjectCache.php(1150): WANObjectCache->doGetWithSetCallback(string, integer, Closure, array)

#9 /var/www/html/32/includes/page/WikiPage.php(647): WANObjectCache->getWithSetCallback(string, integer, Closure)

#10 /var/www/html/32/includes/page/WikiPage.php(269): WikiPage->getContentModel()

#11 /var/www/html/32/includes/page/WikiPage.php(256): WikiPage->getContentHandler()

#12 /var/www/html/32/includes/actions/Action.php(98): WikiPage->getActionOverrides()

#13 /var/www/html/32/includes/actions/Action.php(156): Action::factory(string, WikiPage, RequestContext)

#14 /var/www/html/32/includes/MediaWiki.php(155): Action::getActionName(RequestContext)

#15 /var/www/html/32/includes/MediaWiki.php(777): MediaWiki->getAction()

#16 /var/www/html/32/includes/MediaWiki.php(517): MediaWiki->main()

#17 /var/www/html/32/index.php(42): MediaWiki->run()

#18 {main}

什么时候在 putty 中使用rebuildtex.php 会显示这个错误:

Clearing searchindex table...Done

Rebuilding index fields for 2042149538 pages...

[671f7d80f09b99cf7a1c40b2] [no req]   Wikimedia\Assert\ParameterAssertionExcepti                                                                                        on from line 63 of /var/www/html/32/vendor/wikimedia/assert/src/Assert.php: Bad                                                                                         value for parameter $row->rev_timestamp: must be a valid timestamp

【问题讨论】:

  • 听起来像是数据库中的无效数据。有效的时间戳是 YYYYDDMMhhmmss 形式的字符串(通常;它可能取决于您的配置)。

标签: php sql timestamp mediawiki sql-timestamp


【解决方案1】:

也许是因为您使用太阳回历日期 (خورشیدی) 格式?我猜想在最新版本的 Mediawiki 中不再支持这种格式。这个错误occurs在检查Revision表中的每一行时,如果它没有被验证,它就会抛出这个异常。

要检查问题是否与数据库有关,请运行以下查询:

select rev_timestamp from revision limit 10;

然后检查输出中的时间戳。如果rev_timestamp 不是这种格式20190101235900,那么这意味着您需要更新此表中的所有rev_timestamp 字段,使用 Mediawiki 支持的确切格式。

【讨论】:

  • 感谢您回答什么是绿色维护SQL,它可以正常工作TIMESTAMP示例格式如下: 3230313030393137323334343431 过去和1.28版本都是这样,现在没有也是个问题。有一个问题是我在百科中无法正常搜索,执行后 php rebuildtextindex.php 出现如下错误:
  • 以下错误:清除搜索索引表...完成为 2042149588 页重建索引字段... [9ba53f60218589c0d66621a7] [no req] Wikimedia \ Assert \ ParameterAssertionException from line 63 of /var/www /html/33/33/vendor/wikimedia/assert/src/Assert.php:参数$ row-> rev_timestamp的值错误:黑色没有有效的时间戳回溯:
猜你喜欢
  • 2019-10-11
  • 1970-01-01
  • 2016-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-31
相关资源
最近更新 更多