[dw-free] enable mogile
[commit: http://hg.dwscoalition.org/dw-free/rev/5b17e058c2a4]
http://bugs.dwscoalition.org/show_bug.cgi?id=731
Migrater didn't support userpicblob2. Now it does.
Patch by
mark.
Files modified:
http://bugs.dwscoalition.org/show_bug.cgi?id=731
Migrater didn't support userpicblob2. Now it does.
Patch by
![[staff profile]](https://www.dreamwidth.org/img/silk/identity/user_staff.png)
Files modified:
- bin/upgrading/migrate-userpics.pl
-------------------------------------------------------------------------------- diff -r cc4ec07c2af5 -r 5b17e058c2a4 bin/upgrading/migrate-userpics.pl --- a/bin/upgrading/migrate-userpics.pl Wed Apr 08 16:57:27 2009 +0000 +++ b/bin/upgrading/migrate-userpics.pl Wed Apr 08 18:34:13 2009 +0000 @@ -68,7 +68,11 @@ ERRMSG # make sure ljconfig is setup right (or so we hope) die "Please define a 'userpics' class in your \%LJ::MOGILEFS_CONFIG\n" - unless defined $LJ::MOGILEFS_CONFIG{classes}->{userpics}; + unless defined $LJ::MOGILEFS_CONFIG{classes}->{userpics} && + $LJ::USERPIC_MOGILEFS; + +# now make sure we can connect +LJ::mogclient(); die "Unable to find MogileFS object (\%LJ::MOGILEFS_CONFIG not setup?)\n" unless $LJ::MogileFS; @@ -203,17 +207,33 @@ sub handle_userid { # get all their photos that aren't in mogile already my $picids = $dbcm->selectall_arrayref - ("SELECT picid, md5base64, fmt FROM userpic2 WHERE userid = ? AND (location <> 'mogile' OR location IS NULL)", + ("SELECT picid, md5base64, fmt, location FROM userpic2 WHERE userid = ? AND (location <> 'mogile' OR location IS NULL)", undef, $u->{userid}); return unless @$picids; # now we have a userid and picids, get the photos from the blob server foreach my $row (@$picids) { - my ($picid, $md5, $fmt) = @$row; + my ($picid, $md5, $fmt, $loc) = @$row; print "\tstarting move for picid $picid\n" if $verbose; + my $format = { G => 'gif', J => 'jpg', P => 'png' }->{$fmt}; - my $data = LJ::Blob::get($u, "userpic", $format, $picid); + + # if the picture is from the blobserver + my $data; + if ( $loc eq 'blob' ) { + + $data = LJ::Blob::get($u, "userpic", $format, $picid); + + # no target? then it's in the database + } elsif ( ! defined $loc ) { + + ($data) = $dbcm->selectrow_array( + 'SELECT imagedata FROM userpicblob2 WHERE userid = ? AND picid = ?', + undef, $u->{userid}, $picid + ); + + } # get length my $len = length($data); @@ -223,7 +243,7 @@ sub handle_userid { if $verbose; next; } - die "Error: data from blob empty ($u->{user}, 'userpic', $format, $picid)\n" + die "Error: data from location=$loc empty ($u->{user}, 'userpic', $format, $picid)\n" unless $len; # verify the md5 of this picture with what's in the database @@ -238,7 +258,7 @@ sub handle_userid { unless $md5 eq $blobmd5; print "\tverified md5; database=$md5, blobserver=$blobmd5\n" if $verbose; - + # get filehandle to Mogile and put the file there print "\tdata length = $len bytes, uploading to MogileFS...\n" if $verbose; --------------------------------------------------------------------------------