Content translation/Product Definition/Database

Content Translation needs a common database for all the wikis. This database is for storing the translation details of users between language pairs (i.e. between wikis).

Setup edit

Here are sample shell and SQL commands to create the contenttranslation database. Replace USER with the value of $wgDbUser for your own wiki installation (LocalSettings.php).

$ cd extensions/ContentTranslation/sql
$ mysql -u root -p

Enter password for root SQL user, then run the following commands at the mysql prompt:

CREATE DATABASE contenttranslation;
USE contenttranslation;
GRANT ALL ON contenttranslation.* to 'USER'@'localhost';
SOURCE SCRIPTNAME.sql

Beta edit

Content Translation database is setup as shared database "wikishared" on Beta Cluster.

Access edit

$ ssh deployment-tin.eqiad.wmflabs
$ mwscript sql.php --wiki=enwiki

Production edit

In Wikimedia production environment, Content Translation tables are placed in side "extension1" shared database cluster. Database for Content Translation is "wikishared". In order to separate Content Translation tables from other tables, they are prefixed as 'cx'.

Access edit

  • Login to mwmaint1002 (or mwmaint2001 during DC switchover)
  • sql.php need to use with,
mwscript sql.php --wiki=LANGwiki --cluster extension1 --wikidb wikishared

Where LANG is wiki language code.

  • Queries can be run after that.
  • --write flag is needed to create new table. See: task T120815

manage-lists.php edit

  • Make sure to run script from latest code.
  • Run with following command,
mwscript extensions/ContentTranslation/scripts/manage-lists.php --wiki=LANGwiki --source xx --target yy --category "CATEGORY"

Add --really to really insert into DB.

Changes edit

Any changes in database for production environment must use the process described in https://wikitech.wikimedia.org/wiki/Schema_changes.

Notes edit