Yaron Koren has submitted this change and it was merged.

Change subject: Fix for when Cargo and main MW DBs use different DBMS
......................................................................


Fix for when Cargo and main MW DBs use different DBMS

Change-Id: I1d61e8ef1781cc074914cef0a3e0dfb860d6b478
---
M CargoUtils.php
1 file changed, 8 insertions(+), 10 deletions(-)

Approvals:
  Yaron Koren: Checked; Looks good to me, approved



diff --git a/CargoUtils.php b/CargoUtils.php
index c9a9ee5..d74e04c 100644
--- a/CargoUtils.php
+++ b/CargoUtils.php
@@ -282,14 +282,11 @@
         * Why "tables"? Because every field that holds a list of values gets
         * its own helper table.
         *
-        * @global string $wgDBtype
         * @param int $templatePageID
         * @return boolean
         * @throws MWException
         */
        public static function recreateDBTablesForTemplate( $templatePageID ) {
-               global $wgDBtype;
-
                $tableSchemaString = self::getPageProp( $templatePageID, 
'CargoFields' );
                // First, see if there even is DB storage for this template -
                // if not, exit.
@@ -318,8 +315,9 @@
                $tableName = self::getPageProp( $templatePageID, 
'CargoTableName' );
                // Unfortunately, there is not yet a 'CREATE TABLE' wrapper
                // in the MediaWiki DB API, so we have to call SQL directly.
-               $intTypeString = self::fieldTypeToSQLType( 'Integer', $wgDBtype 
);
-               $textTypeString = self::fieldTypeToSQLType( 'Text', $wgDBtype );
+               $dbType = $cdb->getType();
+               $intTypeString = self::fieldTypeToSQLType( 'Integer', $dbType );
+               $textTypeString = self::fieldTypeToSQLType( 'Text', $dbType );
 
                $createSQL = "CREATE TABLE " .
                        $cdb->tableName( $tableName ) . ' ( ' .
@@ -345,17 +343,17 @@
                                $createSQL .= $textTypeString;
                        } else {
                                $createSQL .= ", $fieldName ";
-                               $createSQL .= self::fieldTypeToSQLType( 
$fieldType, $wgDBtype, $size );
+                               $createSQL .= self::fieldTypeToSQLType( 
$fieldType, $dbType, $size );
                        }
 
                        if ( !$isList && $fieldType == 'Coordinates' ) {
-                               $floatTypeString = self::fieldTypeToSQLType( 
'Float', $wgDBtype );
+                               $floatTypeString = self::fieldTypeToSQLType( 
'Float', $dbType );
                                $createSQL .= ', ' . $fieldName . '__lat ';
                                $createSQL .= $floatTypeString;
                                $createSQL .= ', ' . $fieldName . '__lon ';
                                $createSQL .= $floatTypeString;
                        } elseif ( $fieldType == 'Date' || $fieldType == 
'Datetime' ) {
-                               $integerTypeString = self::fieldTypeToSQLType( 
'Integer', $wgDBtype );
+                               $integerTypeString = self::fieldTypeToSQLType( 
'Integer', $dbType );
                                $createSQL .= ', ' . $fieldName . '__precision 
';
                                $createSQL .= $integerTypeString;
                        }
@@ -399,12 +397,12 @@
                                $cdb->tableName( $fieldTableName ) . ' ( ' .
                                "_rowID $intTypeString, ";
                        if ( $fieldType == 'Coordinates' ) {
-                               $floatTypeString = self::fieldTypeToSQLType( 
'Float', $wgDBtype );
+                               $floatTypeString = self::fieldTypeToSQLType( 
'Float', $dbType );
                                $createSQL .= '_value ' . $floatTypeString . ', 
';
                                $createSQL .= '_lat ' . $floatTypeString . ', ';
                                $createSQL .= '_lon ' . $floatTypeString;
                        } else {
-                               $createSQL .= '_value ' . 
self::fieldTypeToSQLType( $fieldType, $wgDBtype, $size );
+                               $createSQL .= '_value ' . 
self::fieldTypeToSQLType( $fieldType, $dbType, $size );
                        }
                        $createSQL .= ' )';
                        $cdb->query( $createSQL );

-- 
To view, visit https://gerrit.wikimedia.org/r/223341
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I1d61e8ef1781cc074914cef0a3e0dfb860d6b478
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Cargo
Gerrit-Branch: master
Gerrit-Owner: Yaron Koren <yaro...@gmail.com>
Gerrit-Reviewer: Yaron Koren <yaro...@gmail.com>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to