好吧,那么。我的MediaWiki从Uidoss的服务器迁移到德国的服务器,结果适得其反,可怕的是,我最终只得到了数据库。整个MediaWiki安装不可挽回地丢失了。我不记得该网站运行的是什么版本的MediaWiki,尽管它是半现代的(2012年1月之后的某个时候)。PostgreSQL数据库已在新服务器中成功恢复。是否有任何SQL可以查询给予我版本信息?我尝试过从1.19升级,但它给了我 * 所有 * 种类的“列已经存在”错误,通常失败。
zc0qhyus1#
我建议简单地升级到最新版本,不要担心你以前有哪个版本。MediaWiki * 应该 * 从任何版本(1.5之后)优雅地升级到当前版本。然而,在PostGres上这可能不像在MySQL上那么顺利,也有可能一些扩展做得不好。请向http://bugs.wikimedia.org报告升级过程中的任何失败。
编辑:回答原始问题:通过查看数据库来查找MediaWiki版本的最佳方法是以下查询:
select max(ul_key) from updatelog where ul_key like 'updatelist-%';
YMMV。这不是一个官方的或推荐的版本检查。它查看一个用于记录数据库更新的表,并给你在以“updatelist”开头的条目中找到的最新版本。这些条目可能会消失,或改变外观。而且,我不确定PG是否支持我给出的LIKE语法。
检查MediaWiki版本的最佳方法是查看Special:Version,或者,如果Wiki没有运行,则检查includes/DefaultSettings.php中的**$wgVersion**。
bihw5rsg2#
不幸的是,你不能从数据库中得到正确的版本号。如果你能访问php文件的备份,那就容易多了,也可靠多了。根据Mediawiki的版本,您可以在includes/DefaultSettings.php或includes/Defines.php中找到版本定义。
includes/DefaultSettings.php
includes/Defines.php
MW_VERSION
例如:define( 'MW_VERSION', '1.35.8' );
define( 'MW_VERSION', '1.35.8' );
$wgVersion
例如:$wgVersion = '1.19.24';或$wgVersion = '1.29.3';或者,您可以使用类似下面这样的一行程序来查找它:
$wgVersion = '1.19.24';
$wgVersion = '1.29.3';
grep -E 'wgVersion|MW_VERSION' /var/lib/mediawiki/includes/{DefaultSettings,Defines}.php
我有两个MediaWiki安装,使用PostgreSQL。一个在旧的Debian 8杰西上,一个在Debian最近升级到v10 Buster上。在这两种情况下,只查询数据库都不起作用或给出错误的结果。在带有Mediawiki 1.19版本的旧Debian 8上,这个SQL查询给出了一个更老的版本:
$ 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-%';"
在Debian 10 1.31版机器上:这会给出与另一台计算机上相同的错误旧版本:
$ 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
brightbyte's answer中建议的查询 * 应该 * 给予正确的结果,但却没有,它给出的是1.27版本,正好是升级之前的版本:
$ psql -U postgres -t -d wikidb -c "SELECT max(ul_key) FROM updatelog WHERE ul_key LIKE 'updatelist-%';" updatelist-1.27.4-15461109030
因此,不要使用数据库查找正确的版本。还要注意的是,在升级之后,你可能需要运行maintenance目录下的update.php来更新数据库模式,为了能够做到这一点,你需要一个工作的“LocalSettings.php”配置,对于PostgreSQL,还需要正确的php pgsql库和Apache模块。
maintenance
update.php
2条答案
按热度按时间zc0qhyus1#
我建议简单地升级到最新版本,不要担心你以前有哪个版本。
MediaWiki * 应该 * 从任何版本(1.5之后)优雅地升级到当前版本。然而,在PostGres上这可能不像在MySQL上那么顺利,也有可能一些扩展做得不好。
请向http://bugs.wikimedia.org报告升级过程中的任何失败。
编辑:回答原始问题:通过查看数据库来查找MediaWiki版本的最佳方法是以下查询:
YMMV。这不是一个官方的或推荐的版本检查。它查看一个用于记录数据库更新的表,并给你在以“updatelist”开头的条目中找到的最新版本。这些条目可能会消失,或改变外观。而且,我不确定PG是否支持我给出的LIKE语法。
检查MediaWiki版本的最佳方法是查看Special:Version,或者,如果Wiki没有运行,则检查includes/DefaultSettings.php中的**$wgVersion**。
bihw5rsg2#
不幸的是,你不能从数据库中得到正确的版本号。如果你能访问php文件的备份,那就容易多了,也可靠多了。
根据Mediawiki的版本,您可以在
includes/DefaultSettings.php
或includes/Defines.php
中找到版本定义。includes/Defines.php
包含自版本1.31起的MW_VERSION
常量的定义。例如:
define( 'MW_VERSION', '1.35.8' );
includes/DefaultSettings.php
包含旧版本(最高约为版本1.30)的$wgVersion
变量定义。例如:
$wgVersion = '1.19.24';
或$wgVersion = '1.29.3';
或者,您可以使用类似下面这样的一行程序来查找它:
我有两个MediaWiki安装,使用PostgreSQL。一个在旧的Debian 8杰西上,一个在Debian最近升级到v10 Buster上。
在这两种情况下,只查询数据库都不起作用或给出错误的结果。
在带有Mediawiki 1.19版本的旧Debian 8上,这个SQL查询给出了一个更老的版本:
而这个函数在表中没有这样的键,所以它什么也不返回:
在Debian 10 1.31版机器上:
这会给出与另一台计算机上相同的错误旧版本:
brightbyte's answer中建议的查询 * 应该 * 给予正确的结果,但却没有,它给出的是1.27版本,正好是升级之前的版本:
因此,不要使用数据库查找正确的版本。
还要注意的是,在升级之后,你可能需要运行
maintenance
目录下的update.php
来更新数据库模式,为了能够做到这一点,你需要一个工作的“LocalSettings.php”配置,对于PostgreSQL,还需要正确的php pgsql库和Apache模块。