升级到1.32后,MediaWiki中的时间戳问题

时间:2019-07-10 19:37:13

标签: php sql timestamp mediawiki sql-timestamp

从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}

OR

在腻子中使用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

1 个答案:

答案 0 :(得分:0)

也许是因为您使用的是太阳回历日期(خورشیدی)格式?我想最新的Mediawiki版本不再支持这种格式。当检查Revision表中的每一行时,发生此错误occurs,并且如果未验证该错误,则会引发此异常。

要检查问题是否出在数据库上,请运行以下查询:

select rev_timestamp from revision limit 10;

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