|Subject:||Re: More issues with 5.0 RC4|
|From:||Matt Raible (ma...@raibledesigns.com)|
|Date:||Apr 28, 2011 10:45:25 am|
On Wed, Apr 27, 2011 at 11:22 AM, Matt Raible <ma...@raibledesigns.com>wrote:
On Wed, Apr 27, 2011 at 6:39 AM, Matt Raible <ma...@raibledesigns.com>wrote:
On Apr 26, 2011, at 7:44 PM, Dave wrote:
On Tue, Apr 26, 2011 at 2:23 PM, Matt Raible <ma...@raibledesigns.com>
On Apr 26, 2011, at 12:20 PM, Dave wrote:
On Tue, Apr 26, 2011 at 11:14 AM, Matt Raible <ma...@raibledesigns.com>
This morning I discovered a couple new issues with my 5.0 RC4 install. 1) My tag cloud isn't working on my site. When I hit the following link, I don't get any errors in my log, but it results in a 404. Any ideas? http://raibledesigns.com/rd/tags/appfuse
That probably means that you don't have a tag index page in your side, or something the page you do have became "unmarked" as a tags index page. If that's the case, it would be very nice to know why that happened so we can fix it before release.
Is this a servlet that should be in web.xml?
No. In a custom theme, there are four types of template actions that you can create (weblog, permalink, search, tagsIndex and custom). For the "/blog/tags/tag" form of URL, then you need one template that is the tagIndex template.
Unfortunately, Roller does not display the name of a template's action anywhere so it is hard to tell which templates are which actions. Please check the "webpage" table and see if you have a template with action of "tagsIndex."
entries when I re-imported all of them?
Which import script are you talking about? I was not aware (or forgot) that we have an importer in Roller.
I'm talking about the db upgrade script. I had issues upgrading my
database (MySQL 3.x) and ended up changing to a 5.x database. However, it looks like something got lost when I imported my 3.x database into 5, so I'm wondering if there's a length on the weblogentry.text field that might've chopped off content. Or maybe mysqldump did it when exporting. I'm not sure. I'm working with my hosting provider to try and see if there's a MySQL Diff tool I can use to see what entries need refreshing from my old database.
That is scary. There is no limit on the blog entry content field size, we declare it as type "text" which is an unlimited CLOB type. I guess it is possible that something went wrong with MySQL dump or import commands, but I'd expect those tools to be pretty rock solid by none. I hope have the dump files that you exported.
My hosting provider guy looked into it and it seems like the problem is the charset. My old MySQL 3.x database used latin1 while my MySQL 5.x database uses UTF-8.
The symptom certainly looks familiar: "Be careful when switching to UTF-8. Once you have converted your data, any program/webapp that uses the database will have to check that the data they are sending to the database is valid UTF-8. If it isn't then MySQL will silently truncate the data after the invalid part, which can cause all sorts of problems."
Did anything change structurally b/w Roller 4 and 5 as far as the weblogentry and roller_comments tables go? I think those are the only tables where things got messed up. I think I can convert, delete and then re-import. Do you see any issues with that?
I'm attempting to do this locally. Here's my strategy:
1. Take my 20110302.sql dump and convert it so it works with MySQL 5. This involves changing TYPE=MyISAM to ENGINE=MyISAM and then using the "convert dump" section from http://en.gentoo-wiki.com/wiki/Convert_latin1_to_UTF-8_in_MySQL. 2. Create a new 5.x database with UTF-8:
CREATE DATABASE roller CHARACTER SET utf8 COLLATE utf8_general_ci;
3. Import 20110302.sql. 4. Upgrade from Roller 4 to Roller 5 using WEB-INF/classes/dbscripts/mysql/400-to-500-migration.sql 5. mysqldump all rows in roller_comment and weblogentry tables that are older than 3/2/2011. 6. In production, delete all records in roller_comment and weblogentry that are older than 3/2/2011. 7. Insert weblogentry and roller_comment rows from mysqldump.
I believe this will work. However, it looks like things fail on Step 4:
$ mysql -u root -p roller < 400-to-500-migration.sql Enter password: ERROR 1005 (HY000) at line 141: Can't create table 'roller.#sql-d9_d' (errno: 150)
Line 141 is:
alter table roller_mediafiledir add constraint mf_websiteid_fk foreign key ( websiteid ) references website( id ) ;
Any ideas? The only thing I can think of is my 20110302.sql file has some partially-created relationships from a Roller upgrade attempt. I'd like to think it doesn't though. ;-)
I commented out line 141 and was able to get past this. To delete records older than 3/2/2011, I used the following queries:
delete from weblogentry where pubtime < 2011-03-03; delete from roller_comment where posttime < 2011-03-03;
Then I attempted to import comments and weblogentries, but received the following errors. I'm kinda stuck. Do I need to turn off auto-incrementing on insert? If I search the file before importing, there is no key with the value below and if I search the db, it doesn't exist until after the failure below.
mraible:Desktop mraible$ mysql -u root -p roller5 < roller_comment_dump.sql Enter password: ERROR 1062 (23000) at line 12: Duplicate entry '92fe6c8d-fb11-4c32-ba88-d2da36789c43' for key 'PRIMARY'
mraible:Desktop mraible$ mysql -u root -p roller5 < weblogentry_dump.sql Enter password: ERROR 1062 (23000) at line 6: Duplicate entry '' for key 'PRIMARY'