好的,好的。我的MediaWiki从美国的服务器迁移到德国的服务器,这种情况非常糟糕,我最终只得到了数据库。整个mediawiki安装不可避免地丢失了。
我不记得该网站运行的MediaWiki版本,虽然它是半现代的(2012年1月之后的某个时间)。
PostgreSQL数据库已在新服务器中成功恢复。
我可以查询任何SQL来提供版本信息吗?我已尝试从1.19升级,但它给了我所有种“已存在的列”错误,并且通常会失败。
答案 0 :(得分:6)
我建议您只需升级到最新版本,而不必担心之前的版本。
MediaWiki 应从任何版本(1.5之后)优雅地升级到当前版本。但是,对于PostGres而言,这可能不像MySQL那样顺利,并且某些扩展也可能做得不好。
请将升级过程的任何失败报告给http://bugs.wikimedia.org。
编辑:回答原始问题:通过查看数据库查找MediaWiki版本的最佳方法是此查询:
select max(ul_key) from updatelog where ul_key like "updatelist-%";
然而,YMMV 。这不是官方或推荐的版本检查。它查看用于记录数据库更新的表,并为您提供以“updatelist”开头的条目中找到的最新版本。这些条目可能会消失,或改变appreance。另外,我不确定PG是否支持我给出的LIKE语法。
检查MediaWiki版本的最佳方法是查看 Special:Version ,或者,如果wiki未运行,请检查includes / DefaultSettings中的 $ wgVersion 。 PHP。
答案 1 :(得分:0)
不幸的是,似乎并非总是能够从数据库中获取(正确的)版本号。如果您有权访问php文件的备份,则将更加轻松,更加可靠。
我使用PostgreSQL安装了2个Mediawiki。一个在旧的Debian 8 Jessie上,一个在最近升级到v。10 Buster的Debian上。在两种情况下,仅查询数据库都不起作用。但是“抓住” Mediawiki php文件确实可以正常工作。
在带有Mediawiki版本1.19的旧Debian 8上
$ egrep 'wgVersion|MW_VERSION' /var/lib/mediawiki/includes/{DefaultSettings,Defines}.php
/var/lib/mediawiki/includes/DefaultSettings.php:$wgVersion = '1.19.20+dfsg-2.3';
$ psql -U postgres -d wikidb -t -c "SELECT type, mw_version, sql_date, cdate FROM mediawiki.mediawiki_version"
Update | 1.15.4 | $LastChangedDate: 2009-12-16 04:24:12 +1100 (Wed, 16 Dec 2009) $ | 2010-06-17 14:31:18.745713+02
$ psql -U postgres -t -d wikidb -c "SELECT max(ul_key) FROM updatelog WHERE ul_key LIKE 'updatelist-%';"
在版本为1.31的Debian 10机器上:
$ egrep 'wgVersion|MW_VERSION' /var/lib/mediawiki/includes/{DefaultSettings,Defines}.php
/var/lib/mediawiki/includes/DefaultSettings.php: * @deprecated since 1.35; use the MW_VERSION constant instead
/var/lib/mediawiki/includes/DefaultSettings.php:$wgVersion = MW_VERSION;
/var/lib/mediawiki/includes/Defines.php: * This replaces the the $wgVersion global found in earlier versions.
/var/lib/mediawiki/includes/Defines.php:define( 'MW_VERSION', '1.31.10' );
$ psql -U postgres -d wikidb -t -c "SELECT type, mw_version, sql_date, cdate FROM mediawiki.mediawiki_version"
Creation | 1.15.5-2squeeze5 | $LastChangedDate: 2009-03-20 12:15:41 +1100 (Fri, 20 Mar 2009) $ | 2013-05-11 11:57:22.946184+02
$ psql -U postgres -t -d wikidb -c "SELECT max(ul_key) FROM updatelog WHERE ul_key LIKE 'updatelist-%';"
updatelist-1.27.4-15461109030