Page MenuHomePhabricator

Cargo ignores DB schema in Postgres
Open, Needs TriagePublicBUG REPORT

Description

List of steps to reproduce (step by step, including full links if applicable):

  • Install Cargo in a Wiki with Postgres database, don't set a separate DB
  • Generate Cargo Tables
  • Look at DB contents

What happens?:

Cargo's metadata, i.e. the cargo_tables and cargo_pages tables, are stored with all the other Wiki data but the actual Cargo tables are stored in the public schema.

What should have happened instead?:

Cargo uses the same schema for the Cargo tables that is used for everything else.

Software version (if not a Wikimedia wiki), browser information, screenshots, other information, etc:

REL1_35 but applicable to REL1_36, too.

For our usecase this could be patched easily but I think a more thorough implementation is needed as well as a variable needs to be introduced in case a separate DB is used for Cargo tables.

--- includes/CargoUtils.php
+++ includes/CargoUtils.php
@@ -85,6 +85,7 @@ class CargoUtils {
 			global $wgDBport;
 			// @TODO - a $wgCargoDBport variable is still needed.
 			$params['port'] = $wgDBport;
+			$params['schema'] = $dbr->dbSchema();
 		}
 
 		self::$CargoDB = Database::factory( $wgCargoDBtype, $params );