Only if someone will write it, and the maintainer has indicated he has no time for it.depontius wrote:A couple of us have strongly urged that there be a good upgrade guide because of potential problems with the database, and it looks as if that advice will be heeded. There will also be a news item pushed out.
Code: Select all
(In reply to comment #11)
-snip-
> It is possible to do this ahead of time, which I did (I haven't upgraded to
> 0.22 yet), but that's not the recommended approach. The reason is that, if you
> fix the database and plan to continue running 0.21 at all, you MUST change your
> my.cnf on BOTH the front and backends to latin1, or you can cause the "partial
> corruption" described in the wiki. However if you do it when you're ready to
> upgrade, 0.22 will work fine with your mysql configured for utf8.
>
I've been following this for a while, and this question still confounds me. "How do I know if I've got partial corruption in my database?" The only answer I've gotten so far appears to be to do the steps for fixing a uniformly corrupt database and try the upgrade. If you fail, you've got a partially corrupt database. I've found no method of detection other than upgrade failure.
There have been at various times Gentoo "suggestions" to fix my.cnf, and once to drop and reload the database, which I've done. But it seems that utf8 sneaks back into "my.cnf". (There's no ".keep" in there - might that have something to do with it?) So at this point I don't know what I've got. I've run 1 backend, several frontends, and even 1 Ubuntu frontend into this system.
This has me scared - and I've gotten nothing better than "Try and see if it works, then start picking up the pieces, and hope." This sounds like it's going to be a royal pain of backup, try something, restore, try something else - and I fear finally give up, lose 300G of recorded stuff, and start over.
Yes, I'm upset.Wouldn't utf8 characters look "escaped", or some such? Might it be a matter of parsing the backup, finding the keys, and then doing some sort of sort? (a little bit of grep, awk, etc.)tld wrote:It would be pretty difficult to write something to test for that sort of thing without actually upgrading the database.
In my situation, I believe I have 2 risk factors. First is your scenario "a" above. I distinctly remember at some point 2+/- years back being told, either in a forum, by Gentoo Weekly News, or some other news means, to do something about the utf8/latin1 situation. At the time I was told that I should change utf8 to latin1 in my.cnf, then backup, drop, and reload the database. Some time later I noticed that again my.cnf had utf8 in it, so either it wasn't protected from updates, or somehow I missed it. The second risk factor is my daughter's Ubuntu machine is set up as a mythfrontend client, and I have no idea whatsoever what its my.cnf is set as.tld wrote:I believe that the main things that could cause partial corruption situations are: a) having changed your character set entries in your my.cnf at some point, b) having ported your mythconverg database from another distro that used a different character set settings than mysql in your Gentoo system, and c) doing partial restores of the database.
Code: Select all
Testing people...
Testing recorded...
Testing oldrecorded...
Testing oldprogram...
No failures detectedCode: Select all
mysql -u <your_user> -p<your_password> -e "CREATE DATABASE IF NOT EXISTS mythconverg_test CHARACTER SET latin1 COLLATE latin1_swedish_ci"
mysql -u <your_user> -p<your_password> mythconverg_test < mythconverg-to_uncorrupt.sql
perl mythtv_0_22_corruption_test.pl -d mythconverg_test -u <your_user> -p <your_password>
Testing people...
Testing recorded...
Testing oldrecorded...
Testing oldprogram...
No failures detected
Code: Select all
mysql -u <your_user> -p<your_password> -e "DROP DATABASE mythconverg_test"