afuna: Cat under a blanket. Text: "Cats are just little people with Fur and Fangs" (Default)
afuna ([personal profile] afuna) wrote in [site community profile] changelog2009-09-07 02:05 pm

[dw-free] remove support for legacy dversions

[commit: http://hg.dwscoalition.org/dw-free/rev/1043065daebc]

http://bugs.dwscoalition.org/show_bug.cgi?id=1740

Remove unneeded code from bin/

Patch by [personal profile] kareila.

Files modified:
  • bin/d7d8-rollback-user.pl
  • bin/deleteusers.pl
  • bin/upgrading/pop-clusterprops.pl
  • bin/upgrading/update-db.pl
--------------------------------------------------------------------------------
diff -r a65687fd9fed -r 1043065daebc bin/d7d8-rollback-user.pl
--- a/bin/d7d8-rollback-user.pl	Mon Sep 07 11:36:43 2009 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-#!/usr/bin/perl
-#
-# Given a specific user, change their dversion from 8 to 7
-# migrating whatever polls they have to their user cluster
-
-use strict;
-use lib "$ENV{'LJHOME'}/cgi-bin/";
-require "ljlib.pl";
-use LJ::Poll;
-use Term::ReadLine;
-
-my $user = shift() or die "need parameter of username\n";
-my $u = LJ::load_user($user) or die "user doesn't exist\n";
-die "user not at dversion 8\n" unless ($u->{'dversion'} == 8);
-
-my $VERBOSE    = 0;      # print out extra info
-
-my $dbh = LJ::get_db_writer()
-    or die "Could not connect to global master";
-
-my $dbr = LJ::get_cluster_reader($u)
-    or die "can't get cluster reader for user $user\n";;
-
-my $term = new Term::ReadLine 'd7-d8 rollback';
-my $line = $term->readline("Do you want to roll user $user back to dversion 7? [N/y] ");
-unless ($line =~ /^y/i) {
-    print "Not rolling back to dversion 7\n\n";
-    exit;
-}
-
-print "\n--- Downgrading user to dversion 7 ---\n\n";
-
-my $maxpollid_master = $dbh->selectrow_array("SELECT MAX(pollid) FROM poll2 WHERE journalid=?", undef, $u->{userid});
-my $maxpollid_cluster = $dbr->selectrow_array("SELECT MAX(pollid) FROM poll2 WHERE journalid=?", undef, $u->{userid});
-
-# Polls created on the cluster will not exist on the master, so ask how to proceed
-# "[Error: Invalid poll ID ####]" will appear for polls that are not retrievable
-if ($maxpollid_cluster > $maxpollid_master) {
-    $line = $term->readline("User has created polls on the cluster, downgrade user anyhow? [N/y] ");
-    unless ($line =~ /^y/i) {
-        print "Not rolling back to dversion 7\n\n";
-        exit;
-    }
-}
-
-#$dbh->do("UPDATE user SET dversion=7 where userid=?", undef, $u->{userid});
-die "Downgrade failed: " . $dbh->errstr
-    unless ( LJ::update_user($u, { 'dversion' => 7 }) );
-
-print "--- Done downgrading user $user to dversion 7 ---\n";
diff -r a65687fd9fed -r 1043065daebc bin/deleteusers.pl
--- a/bin/deleteusers.pl	Mon Sep 07 11:36:43 2009 +0000
+++ b/bin/deleteusers.pl	Mon Sep 07 13:58:45 2009 +0000
@@ -82,23 +82,14 @@ foreach my $uid (@delusers)
     # delete userpics
     {
         print "  userpics\n";
-        if ($du->{'dversion'} > 6) {
-            $ids = $dbcm->selectcol_arrayref("SELECT picid FROM userpic2 WHERE userid=$uid");
-        } else {
-            $ids = $dbh->selectcol_arrayref("SELECT picid FROM userpic WHERE userid=$uid");
-        }
+        $ids = $dbcm->selectcol_arrayref("SELECT picid FROM userpic2 WHERE userid=$uid");
         my $in = join(",",@$ids);
         if ($in) {
             print "  userpics: $in\n";
             $runsql->($dbcm, $user, "DELETE FROM userpicblob2 WHERE userid=$uid AND picid IN ($in)");
-            if ($du->{'dversion'} > 6) {
-                $runsql->($dbcm, $user, "DELETE FROM userpic2 WHERE userid=$uid");
-                $runsql->($dbcm, $user, "DELETE FROM userpicmap2 WHERE userid=$uid");
-                $runsql->($dbcm, $user, "DELETE FROM userkeywords WHERE userid=$uid");
-            } else {
-                $runsql->($dbh, $user, "DELETE FROM userpic WHERE userid=$uid");
-                $runsql->($dbh, $user, "DELETE FROM userpicmap WHERE userid=$uid");
-            }
+            $runsql->($dbcm, $user, "DELETE FROM userpic2 WHERE userid=$uid");
+            $runsql->($dbcm, $user, "DELETE FROM userpicmap2 WHERE userid=$uid");
+            $runsql->($dbcm, $user, "DELETE FROM userkeywords WHERE userid=$uid");
         }
     }
 
diff -r a65687fd9fed -r 1043065daebc bin/upgrading/pop-clusterprops.pl
--- a/bin/upgrading/pop-clusterprops.pl	Mon Sep 07 11:36:43 2009 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-#!/usr/bin/perl
-#
-# This script converts from dversion 3 to dversion 4,
-# which makes most userprops clustered
-#
-
-use strict;
-
-require "$ENV{'LJHOME'}/cgi-bin/ljlib.pl";
-
-my $fromver = shift;
-die "Usage: pop-clusterprops.pl <fromdversion>\n\t(where fromdversion is one of: 3)\n"
-    unless $fromver == 3;
-
-my $dbh = LJ::get_db_writer();
-
-my $todo = $dbh->selectrow_array("SELECT COUNT(*) FROM user WHERE dversion=$fromver");
-my $done = 0;
-unless ($todo) {
-    print "Nothing to convert.\n";
-    exit 0;
-}
-
-sub get_some {
-    my @list;
-    my $sth = $dbh->prepare("SELECT * FROM user WHERE dversion=$fromver LIMIT 200");
-    $sth->execute;
-    push @list, $_ while $_ = $sth->fetchrow_hashref;
-    @list;
-}
-
-my $tover = $fromver + 1;
-print "Converting $todo users from data version $fromver to $tover...\n";
-
-my @props;
-my $sth = $dbh->prepare("SELECT upropid FROM userproplist WHERE cldversion=?");
-$sth->execute($tover);
-push @props, $_ while $_ = $sth->fetchrow_array;
-my $in = join(',', @props);
-die "No values?" unless $in;
-
-my $start = time();
-while (my @list = get_some()) {
-    LJ::start_request();
-      
-    my %cluster;  # clusterid -> [ $u* ]
-    foreach my $u (@list) {
-        push @{$cluster{$u->{'clusterid'}}}, $u;
-    }
-
-    foreach my $cid (keys %cluster) {
-        my $dbcm = LJ::get_cluster_master($cid);
-        next unless $dbcm;
-        
-        my $uid_in = join(',', map { $_->{'userid'} } @{$cluster{$cid}});
-
-        my @vals;
-        foreach my $table (qw(userprop userproplite)) {
-            $sth = $dbh->prepare("SELECT userid, upropid, value FROM $table ".
-                                 "WHERE userid IN ($uid_in) AND upropid IN ($in)");
-            $sth->execute();
-            while (my ($uid, $pid, $v) = $sth->fetchrow_array) {
-                push @vals, "($uid,$pid," . $dbh->quote($v) . ")";
-            }
-        }
-        if (@vals) {
-            my $sql = "REPLACE INTO userproplite2 VALUES " . join(',', @vals);
-            $dbcm->do($sql);
-            if ($dbcm->err) {
-                die "Error: " . $dbcm->errstr . "\n\n(Do you need to --runsql on your clusters first?)\n";
-            }
-            $dbh->do("DELETE FROM userprop WHERE userid IN ($uid_in) AND upropid IN ($in)");
-            $dbh->do("DELETE FROM userproplite WHERE userid IN ($uid_in) AND upropid IN ($in)");
-        }
-        $dbh->do("UPDATE user SET dversion=$tover WHERE userid IN ($uid_in) AND dversion=$fromver");
-        $done += scalar @{$cluster{$cid}};
-    }
-
-    my $perc = $done/$todo;
-    my $elapsed = time() - $start;
-    my $total_time = $elapsed / $perc;
-    my $min_remain = int(($total_time - $elapsed) / 60);
-    printf "%d/%d complete (%.02f%%) minutes_remain=%d\n", $done, $todo, ($perc*100), $min_remain;
-}
diff -r a65687fd9fed -r 1043065daebc bin/upgrading/update-db.pl
--- a/bin/upgrading/update-db.pl	Mon Sep 07 11:36:43 2009 +0000
+++ b/bin/upgrading/update-db.pl	Mon Sep 07 13:58:45 2009 +0000
@@ -188,21 +188,6 @@ if ($opt_pop) {
     $dbh = LJ::get_db_writer()
         or die "Couldn't get master handle for population.";
     populate_database();
-}
-
-# make sure they don't have cluster0 users (support for that will be going away)
-# Note:  now cluster 0 means expunged (as well as statuvis 'X'), so there's
-# an option to disable the warning if you're running new code and know what's up.
-# if they're running modern code (with dversion 6 users), we won't check
-unless ($dbh->selectrow_array("SELECT userid FROM user WHERE dversion >= 6 LIMIT 1")) {
-    my $cluster0 = $dbh->selectrow_array("SELECT COUNT(*) FROM user WHERE clusterid=0");
-    if ($cluster0) {
-        print "\n", "* "x35, "\nWARNING: You have $cluster0 users on cluster 0.\n\n".
-            "Support for that old database schema is deprecated and will be removed soon.\n".
-            "You should stop updating from CVS until you've moved all your users to a cluster \n".
-            "(probably cluster '1', which you can run on the same database). \n".
-            "See bin/moveucluster.pl for instructions.\n" . "* "x35 . "\n\n";
-    }
 }
 
 print "# Done.\n";
--------------------------------------------------------------------------------

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org