summaryrefslogtreecommitdiff
path: root/maintenance/fixUserRegistration.php
diff options
context:
space:
mode:
Diffstat (limited to 'maintenance/fixUserRegistration.php')
-rw-r--r--maintenance/fixUserRegistration.php31
1 files changed, 31 insertions, 0 deletions
diff --git a/maintenance/fixUserRegistration.php b/maintenance/fixUserRegistration.php
new file mode 100644
index 00000000..af8a68c2
--- /dev/null
+++ b/maintenance/fixUserRegistration.php
@@ -0,0 +1,31 @@
+<?php
+/**
+ * Fix the user_registration field.
+ * In particular, for values which are NULL, set them to the date of the first edit
+ */
+
+require_once( 'commandLine.inc' );
+
+$fname = 'fixUserRegistration.php';
+
+$dbr =& wfGetDB( DB_SLAVE );
+$dbw =& wfGetDB( DB_MASTER );
+
+// Get user IDs which need fixing
+$res = $dbr->select( 'user', 'user_id', 'user_registration IS NULL', $fname );
+
+while ( $row = $dbr->fetchObject( $res ) ) {
+ $id = $row->user_id;
+ // Get first edit time
+ $timestamp = $dbr->selectField( 'revision', 'MIN(rev_timestamp)', array( 'rev_user' => $id ), $fname );
+ // Update
+ if ( !empty( $timestamp ) ) {
+ $dbw->update( 'user', array( 'user_registration' => $timestamp ), array( 'user_id' => $id ), $fname );
+ print "$id $timestamp\n";
+ } else {
+ print "$id NULL\n";
+ }
+}
+print "\n";
+
+?>