Extension:MSSQLBackCompat

From MediaWiki.org
Jump to: navigation, search
MediaWiki extensions manual
Crystal Clear action run.png
MSSQLBackCompat

Release status: beta

Implementation Database
Description Back compat hack for those that need non core MSSQL support (SMW, ED or something)
MediaWiki 1.17+
License GPLv2
Download

Translate the MSSQLBackCompat extension if possible

Check usage and version matrix; code metrics

This extension allow MediaWiki to query a Microsoft SQL database from Linux. It is not recommended for general everyday because to install it, you'll have to modify a file in the main files of MediaWiki. It is broken to use a the main MediaWiki databse but quite useful for extensions that query a database for other informations such as External Data.

Introduction[edit | edit source]

On Windows platforms, in PHP 5.3 and later, the mssql extension is being phased out in favor of SQLDRV, a Windows only extension.[1] MediaWiki has followed and removed the old implementation[2] and replaced it with SQLDRV.[3]

On Unix/Linux platforms, the mssql extension is still supported and use the FreeTDS library. This extension make use of it.

Installation[edit | edit source]

  1. Download the files from SVN and place them in $IP/extensions/MSSQLBackCompat/
  2. Add
    require_once( "$IP/extensions/MSSQLBackCompat/MSSQLBackCompat.php" );
    into your wiki's LocalSettings.php
  3. Modify the file includes/db/Database.php as shown below.

Database.php[edit | edit source]

To use this extension you have to modify $IP/includes/db/Database.php

Search for the following:

        public final static function newFromType( $dbType, $p = array() ) {
                $canonicalDBTypes = array(
                        'mysql', 'postgres', 'sqlite', 'oracle', 'mssql', 'ibm_db2'                );
                $dbType = strtolower( $dbType );

Replace with:

        public final static function newFromType( $dbType, $p = array() ) {
                $canonicalDBTypes = array(
                        'mysql', 'postgres', 'sqlite', 'oracle', 'mssql', 'ibm_db2', 'mssqlold',                );
                $dbType = strtolower( $dbType );

Configuration[edit | edit source]

Suggested modification to your /etc/freetds.conf configuration file. UTF-8 allow you to use international characters.

[global]
        # TDS protocol version
        #tds version = 4.2
        tds version = 8.0
        client charset = UTF-8

References[edit | edit source]

  1. http://www.php.net/manual/en/intro.mssql.php
  2. See modifications in revision 65404.
  3. See modifications in revision 70608 and upward.