SonicVoom
asked on
migrate comments from an old Wordpress database to new DB with different post ID's
Simple description: How can I migrate post comments from an old WP site where the post ID's are different on the new site?
Long description:
We are migrating away from an old custom CMS. It uses a mySQL DB to hold its articles. Comments were an afterthought, and we simply added a link at the end of each article to a wordpress post that merely held comments.
The articles DB table has two useful fields: article name, and the post ID of the corresponding WP post of the comments.
We need to import the comments into the new fully wordpress-based site. All articles have been imported to posts. Those post ID's do not match up to the comment posts on the old WP site.
To locate comments to import, the old articles database must be searched for a post title from the new WP database. The old/new titles are only similar, but will usually match up. When a title is matched, the blog_link field will reference the post ID of the corresponding comment post. Then I can replace the comment_post_ID in each old comment with the new post ID and insert all those into the new site comment table.
There's my outline. Can anyone suggest any helpful tools? Maybe an application or PHP API/framework for sorting and processing through multiple databases?
Long description:
We are migrating away from an old custom CMS. It uses a mySQL DB to hold its articles. Comments were an afterthought, and we simply added a link at the end of each article to a wordpress post that merely held comments.
The articles DB table has two useful fields: article name, and the post ID of the corresponding WP post of the comments.
We need to import the comments into the new fully wordpress-based site. All articles have been imported to posts. Those post ID's do not match up to the comment posts on the old WP site.
To locate comments to import, the old articles database must be searched for a post title from the new WP database. The old/new titles are only similar, but will usually match up. When a title is matched, the blog_link field will reference the post ID of the corresponding comment post. Then I can replace the comment_post_ID in each old comment with the new post ID and insert all those into the new site comment table.
There's my outline. Can anyone suggest any helpful tools? Maybe an application or PHP API/framework for sorting and processing through multiple databases?
Suggest you make a table that maps the old and new post ids. Dont think you can fully automate populating this because as you said, the titles are not exact matches. But once you have this table, its easy to make a script, whether in a stored procedure or an external perl/ruby/whatever script, to copy the data over.
ASKER
Yes, that's a good starting place. But I'd like to try to automate it, as there are many.
How could I iterate through a db table, searching for the string from a field, in a field of another database?
I would need to manually check the results, so perhaps the search string and result could be placed in a table together.
How could I iterate through a db table, searching for the string from a field, in a field of another database?
I would need to manually check the results, so perhaps the search string and result could be placed in a table together.
Take a look at full text searching. Create a full text index on the old title column and do lookups using keywords from the new titles.
ASKER
That is a good plan. I also need advice on tools for searching and manipulating this data. For example, applications or frameworks that assist in searching through several mysql databases.
I'm just now beginning to study SQL in this capacity.
Might the Wordpress database wrapper functions be able to address some of this?
I'm just now beginning to study SQL in this capacity.
Might the Wordpress database wrapper functions be able to address some of this?
Sorry, I don't use Wordpress so I cannot answer your last question. For the first one, I think this is manageable using any of the popular languages available. I would personally use Ruby and the Sequel gem (http://sequel.rubyforge.org/). In the past I would have used Perl.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thanks for the other suggestions.