Add SQL for postgres, and fail gracefully in populateIpChanges
If the ip_changes table doesn't exist, the populateIpChanges maintenance script will fail gracefully, throwing a descriptive error. The postgres SQL is untested. Bug: T177258 Change-Id: Ic11c64813ee04e8520771bfa156f8e51404273e7
This commit is contained in:
parent
744f4c11b0
commit
70a602dde4
3 changed files with 17 additions and 1 deletions
|
|
@ -482,6 +482,7 @@ class PostgresUpdater extends DatabaseUpdater {
|
|||
[ 'addPgField', 'protected_titles', 'pt_reason_id', 'INTEGER NOT NULL DEFAULT 0' ],
|
||||
[ 'addTable', 'comment', 'patch-comment-table.sql' ],
|
||||
[ 'addIndex', 'site_stats', 'site_stats_pkey', 'patch-site_stats-pk.sql' ],
|
||||
[ 'addTable', 'ip_changes', 'patch-ip_changes.sql' ],
|
||||
];
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -62,9 +62,14 @@ TEXT
|
|||
}
|
||||
|
||||
public function doDBUpdates() {
|
||||
$dbw = $this->getDB( DB_MASTER );
|
||||
|
||||
if ( !$dbw->tableExists( 'ip_changes' ) ) {
|
||||
$this->fatalError( 'ip_changes table does not exist' );
|
||||
}
|
||||
|
||||
$lbFactory = MediaWikiServices::getInstance()->getDBLoadBalancerFactory();
|
||||
$dbr = $this->getDB( DB_REPLICA, [ 'vslow' ] );
|
||||
$dbw = $this->getDB( DB_MASTER );
|
||||
$throttle = intval( $this->getOption( 'throttle', 0 ) );
|
||||
$maxRevId = intval( $this->getOption( 'max-rev-id', 0 ) );
|
||||
$start = $this->getOption( 'rev-id', 0 );
|
||||
|
|
|
|||
10
maintenance/postgres/archives/patch-ip_changes.sql
Normal file
10
maintenance/postgres/archives/patch-ip_changes.sql
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
CREATE SEQUENCE ip_changes_ipc_rev_id_seq;
|
||||
|
||||
CREATE TABLE ip_changes (
|
||||
ipc_rev_id INTEGER PRIMARY KEY NOT NULL DEFAULT nextval('ip_changes_ipc_rev_id_seq'),
|
||||
ipc_rev_timestamp TIMESTAMPTZ NOT NULL DEFAULT '',
|
||||
ipc_hex BYTEA NOT NULL DEFAULT ''
|
||||
);
|
||||
|
||||
CREATE INDEX ipc_rev_timestamp ON ip_changes (ipc_rev_timestamp);
|
||||
CREATE INDEX ipc_hex_time ON ip_changes (ipc_hex,ipc_rev_timestamp);
|
||||
Loading…
Reference in a new issue