Also, do we need to import all 30 tables and if not which ones can we skip (during export):
phpbb_auth_access
phpbb_banlist
phpbb_categories
phpbb_config
phpbb_confirm
phpbb_disallow
phpbb_forum_prune
phpbb_forums
phpbb_groups
phpbb_posts
phpbb_posts_text
phpbb_privmsgs
phpbb_privmsgs_text
phpbb_ranks
phpbb_search_results
phpbb_search_wordlist
phpbb_search_wordmatch
phpbb_sessions
phpbb_sessions_keys
phpbb_smilies
phpbb_themes
phpbb_themes_name
phpbb_topics
phpbb_topics_watch
phpbb_user_group
phpbb_users
phpbb_vote_desc
phpbb_vote_results
phpbb_vote_voters
phpbb_words
I just realized that I have dozens of spammers as members of my old phpBB forum.
Can I SKIP importing the users and go straight to importing categories, etc?
As far as i'm aware all you need is 'Structure and Data' and then phpbb_users, topics, categories, forums, posts, and posts_text. You can easily see which tables are used in the mysqldetails file (the variables for table pointers are all set there). I'd suggest you keep the whole copy of data till you're happy with the vanilla setup though. And i'm afraid since it's all heirarchical you cant skip steps. If you start at the top (users) you can stop wherever you like but you cant start lower down otherwise you'll end up with mismapped posts and it'l get confused.
Hm, my categories are not importing.
Any idea to resolve this:
SELECT forum_id,forum_name,forum_desc,forum_order FROM phpbb_forums ORDER BY forum_id ASC
INSERT INTO `LUM_Category` ( `phpBBforumid` , `Name` , `Description` , `Order` ) VALUES ( '1' , 'Where are we riding? / What's going on?', 'Who's riding where and when; General discussions chit chat.', '10' )
ERROR ROW 0 INSERT INTO `LUM_Category` ( `phpBBforumid` , `Name` , `Description` , `Order` ) VALUES ( '4' , 'Memorial Park', 'News and information about the trails at Memorial Park', '10' )
ERROR ROW 1 INSERT INTO `LUM_Category` ( `phpBBforumid` , `Name` , `Description` , `Order` ) VALUES ( '5' , 'Terry Hershey Park (Anthills)', 'News and Information about the trails at Terry Hershey Park', '20' )
ERROR ROW 2 INSERT INTO `LUM_Category` ( `phpBBforumid` , `Name` , `Description` , `Order` ) VALUES ( '6' , 'Cypresswood', 'News and information about the trails at Cypresswood', '30' )
ERROR ROW 3 INSERT INTO `LUM_Category` ( `phpBBforumid` , `Name` , `Description` , `Order` ) VALUES ( '7' , 'Huntsville State Park', 'News and information about Huntsville State Park', '40' )
ERROR ROW 4 INSERT INTO `LUM_Category` ( `phpBBforumid` , `Name` , `Description` , `Order` ) VALUES ( '8' , 'Double Lake Recreation Area', 'News and information about the trails at Double Lake Rec Area', '50' )
ERROR ROW 5 INSERT INTO `LUM_Category` ( `phpBBforumid` , `Name` , `Description` , `Order` ) VALUES ( '9' , 'Jack Brooks Park', 'News and information about the trails at Jack Brooks Park', '60' )
ERROR ROW 6 INSERT INTO `LUM_Category` ( `phpBBforumid` , `Name` , `Description` , `Order` ) VALUES ( '10' , 'Directors', 'A forum for the GHORBA Board of Directors', '10' )
ERROR ROW 7 INSERT INTO `LUM_Category` ( `phpBBforumid` , `Name` , `Description` , `Order` ) VALUES ( '11' , 'Stuff For Sale / WTB', 'Items for sale, exchange or wanted. Not for Commercial Use.', '40' )
ERROR ROW 8 INSERT INTO `LUM_Category` ( `phpBBforumid` , `Name` , `Description` , `Order` ) VALUES ( '12' , 'The Swamp', 'News and information about the trails at the Swamp', '70' )
ERROR ROW 9 INSERT INTO `LUM_Category` ( `phpBBforumid` , `Name` , `Description` , `Order` ) VALUES ( '16' , 'Stephen F Austin State Park', 'News and information about Stephen F Austin State Park', '90' )
ERROR ROW 10 INSERT INTO `LUM_Category` ( `phpBBforumid` , `Name` , `Description` , `Order` ) VALUES ( '17' , 'Trail Stewards', 'For Trail Steward Communications', '10' )
ERROR ROW 11 INSERT INTO `LUM_Category` ( `phpBBforumid` , `Name` , `Description` , `Order` ) VALUES ( '18' , 'Green's Bayou', 'For discussions around Green's Bayou potential trail area', '100' )
ERROR ROW 12
Number of Errors: 13
What if you try putting those queries directly into phpMyAdmin (or alternative)? I'm assuming in some cases it's due to ' 's and )'s but not all of them...
Hey, where's the latest version of the migrator? I've tried few links, only one worked and I'm not sure if it's the latest one. I'd really like to test it!
Very nice script, Minisweeper.
Some suggestions I have are to support multiple databases, i.e. if you have phpbb and vanilla on different databases, and to support prefixes for the phpbb table names, i.e. the name "phpbb_users" might be "myforum_users" - the prefix "phpbb_" is variable, and the same across all tables, in phpbb.
Well in the mysqldetails file there are variables which set the phpbb table name references so if you're using a different prefix you've only for 4 lines to edit.
As for supporting multiple databases, yeah, i know. Truth be told when i was writing it i didnt know how to do that since i've never had to before and i didnt bother working it out. I purely made it to do a job which it (usually) does. There are a *lot* of improvements which could be made though. Maybe i'll make it my summer project once i've got my head round OO a bit more. If you want to help (or takeover!) you're very welcome.
Ha, yeah I might do some work on it. Here is a code and regexp that I used to get rid of the ugly IDs in phpbb's BBcode. Needs to be applied to the post text.
$text = preg_replace("/\[(\/?)(.*):[\w\d]{10}(.*)\]/U", "[\\1\\2\\3]", $text);
$text = preg_replace("/\[\/list:.\]/", "[/list]", $text);
Of course, this leaves a lot of BBCode that doesn't work, as the BBCode extension with Vanilla only supports 4 tags.
Even the better bbcode? I assume to use your snippet I insert it as such:
$body = mysql_fetch_array(mysql_query("SELECT post_text FROM $phpbb_posts_text WHERE `post_id` = '$phpBBpostid'"));
$body = $body['post_text'];
$bodyr1 = preg_replace("/\[(\/?)(.*):[\w\d]{10}(.*)\]/U", "[\\1\\2\\3]", $body);
$bodyr2 = preg_replace("/\[\/list:.\]/", "[/list]", $bodyr1);
$Body = addslashes($bodyr2);
?
so this phpBB migrator, how does it convert to Vanilla's database format? everything? so it converts to Vanilla version what? then how do i update it to the latest Vanilla? say v1? sry but i'm new to vanilla and am excited abt making the transtion.
It converts the users (users), forums (categories), topics (discussions), and posts (comments). That's all (but that's all that's necessary - extracting and migrating useful stuff out of the remaining tables into the remaining tables would need a lot more thought. Roles are not migrated so you'll need to do that yourself i'm afraid (i think, anyway, it's been a long time since i wrote it!)
It will convert to vanilla 0.9.2.6. Then you can run the upgrade script which comes with vanilla 0.9.3 to upgrade it if you so wish.
uh, i thought Vanilla 1 that is available for download is stable? why are you guys still talking abt 0.9.3, etc? sry i read the Documentation but it doesn't help answer this...
The vanilla 1 pre release download which is floating round this board and is a previous revision of the vanilla 0.9.3 available by svn trunk but with a vanilla 1 badge on. Both are beta forms. The pre-release was only made because some people cant work svn and we needed to get 0.9.3 out to a few more people to get more bugs in to fix them. Any version of 0.9.3 from the v1 pre-release onwards is pretty stable but still not quite perfect.
For the sake of it for the time being, consider 0.9.3==v1.
First of all, thanks for this handy tool.
Just one thing I think should be edited. I noticed that in categories.php, the migrator wants to insert data into the 'Order' field in LUM_Category table, however, in the Vanilla 1-pre3 I installed, there is no field called that, there is a 'Priority' though.
I see. The migrator was designed for 0.9.2.6 and hasnt been updated for v1 so I'm actually quite surprised it worked at all (I'm assuming it did?) In which case did swapping order for priority work for you? If so i can do that easily enough - otherwise you'd be best migrating to 0.9.2.6 then upgrading with the script until a decent migration tool is out.
Comments
And i'm afraid since it's all heirarchical you cant skip steps. If you start at the top (users) you can stop wherever you like but you cant start lower down otherwise you'll end up with mismapped posts and it'l get confused.
For the record it wont migrate to v1.
As for supporting multiple databases, yeah, i know. Truth be told when i was writing it i didnt know how to do that since i've never had to before and i didnt bother working it out. I purely made it to do a job which it (usually) does. There are a *lot* of improvements which could be made though. Maybe i'll make it my summer project once i've got my head round OO a bit more. If you want to help (or takeover!) you're very welcome.