Php 仅从数据库确定MediaWiki版本

Php 仅从数据库确定MediaWiki版本,php,sql,mediawiki,Php,Sql,Mediawiki,好的,那么。我的MediaWiki从美国的一台服务器迁移到德国的一台服务器,结果事与愿违,非常可怕,最后我只得到了数据库。整个mediawiki安装都无法挽回地丢失了 我不记得该网站运行的是什么版本的MediaWiki,尽管它是半现代的(2012年1月之后的某个时候) PostgreSQL数据库已在新服务器中成功还原 我可以查询任何SQL来提供版本信息吗?我曾尝试从1.19升级,但它会给我各种各样的“列已存在”错误,通常都会失败。我建议只升级到最新版本,而不必担心以前的版本 MediaWiki应

好的,那么。我的MediaWiki从美国的一台服务器迁移到德国的一台服务器,结果事与愿违,非常可怕,最后我只得到了数据库。整个mediawiki安装都无法挽回地丢失了

我不记得该网站运行的是什么版本的MediaWiki,尽管它是半现代的(2012年1月之后的某个时候)

PostgreSQL数据库已在新服务器中成功还原


我可以查询任何SQL来提供版本信息吗?我曾尝试从1.19升级,但它会给我各种各样的“列已存在”错误,通常都会失败。

我建议只升级到最新版本,而不必担心以前的版本

MediaWiki应该从任何版本(1.5之后)优雅地升级到当前版本。然而,PostGres可能不像MySQL那样顺畅,也可能有些扩展做得不好

请将升级过程中的任何故障报告给

编辑:回答原始问题:通过查看数据库查找MediaWiki版本的最佳方法是以下查询:

select max(ul_key) from updatelog where ul_key like 'updatelist-%';
然而,YMMV。这不是官方或建议的版本检查。它查看用于记录数据库更新的表,并提供在以“updatelist”开头的条目中找到的最新版本。这些条目可能会消失,或改变外观。另外,我不确定PG是否支持我给出的语法


检查MediaWiki版本的最佳方法是查看特殊:版本,或者,如果wiki未运行,请检查includes/DefaultSettings.php中的$wgVersion

我建议您只需升级到最新版本,而不必担心以前的版本

MediaWiki应该从任何版本(1.5之后)优雅地升级到当前版本。然而,PostGres可能不像MySQL那样顺畅,也可能有些扩展做得不好

请将升级过程中的任何故障报告给

编辑:回答原始问题:通过查看数据库查找MediaWiki版本的最佳方法是以下查询:

select max(ul_key) from updatelog where ul_key like 'updatelist-%';
然而,YMMV。这不是官方或建议的版本检查。它查看用于记录数据库更新的表,并提供在以“updatelist”开头的条目中找到的最新版本。这些条目可能会消失,或改变外观。另外,我不确定PG是否支持我给出的语法


检查MediaWiki版本的最佳方法是查看特殊:版本,或者,如果wiki未运行,请检查includes/DefaultSettings.php中的$wgVersion

不幸的是,似乎并不总是能够从数据库中获取(正确的)版本号。如果您可以访问php文件的备份,那么就更容易、更可靠了

我使用PostgreSQL安装了2个Mediawiki。一个是旧的Debian 8 Jessie,另一个是Debian最近升级到v的。10破坏者。在这两种情况下,仅查询数据库都不起作用。但是“grepping”Mediawiki php文件确实可以正常工作

在旧的Debian 8上使用Mediawiki 1.19版

  • 这给出了正确的版本:
  • 这仍然引用旧版本1.15:
  • 表中没有这样的键,所以不返回任何内容:
在版本为1.31的Debian 10机器上:

  • 这在输出的最后一行给出了正确的版本:
  • 这会产生与另一台机器上相同的错误旧版本:
  • 中建议的查询应该会给出正确的结果,但由于某些原因,该查询在此计算机上不可用。它提供了升级前的1.27版:

不幸的是,似乎并不总是能够从数据库中获取(正确的)版本号。如果您可以访问php文件的备份,那么就更容易、更可靠了

我使用PostgreSQL安装了2个Mediawiki。一个是旧的Debian 8 Jessie,另一个是Debian最近升级到v的。10破坏者。在这两种情况下,仅查询数据库都不起作用。但是“grepping”Mediawiki php文件确实可以正常工作

在旧的Debian 8上使用Mediawiki 1.19版

  • 这给出了正确的版本:
  • 这仍然引用旧版本1.15:
  • 表中没有这样的键,所以不返回任何内容:
在版本为1.31的Debian 10机器上:

  • 这在输出的最后一行给出了正确的版本:
  • 这会产生与另一台机器上相同的错误旧版本:
  • 中建议的查询应该会给出正确的结果,但由于某些原因,该查询在此计算机上不可用。它提供了升级前的1.27版:

你说得对,但有一点需要注意:它根本不能很好地处理在未来版本上的安装!我尝试安装1.19.5,但它崩溃并烧毁了。但升级到1.21.2成功了。谢谢+1因为虽然你没有回答被问到的问题,但你确实解决了真正的问题,这在我处于类似职位时更为重要。@TheodoreR.Smith看起来你的问题已经得到了回答。你现在应该把它标记成这样。哇!我才意识到,在他/她最初的答案发布两年后,@brightbyte居然回来编辑了它!接受+惊奇!我想知道为什么答案得到6票,而问题只有1票,特别是当它被浏览超过1000次时……你是对的,有一点需要注意:它根本不能很好地处理在未来版本上的安装!我尝试安装1.19.5,但它崩溃并烧毁了。但升级到1.21.2成功了。谢谢+1因为当你没有回答被问到的问题时,你回答了
$ 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-%';"

$ 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