[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
kareila.
Files modified:
http://bugs.dwscoalition.org/show_bug.cgi?id=1740
Remove unneeded code from bin/
Patch by
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
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"; --------------------------------------------------------------------------------