Forum conversion » History » Version 18
Amber Herold, 07/09/2010 12:52 PM
1 | 1 | Amber Herold | h1. Forum conversion |
---|---|---|---|
2 | |||
3 | Notes on porting the Leginon BB to Redmine |
||
4 | |||
5 | 14 | Amber Herold | # Add Forums |
6 | ## create new colum for bb forum id |
||
7 | ## insert the bb forums |
||
8 | # Add column to redmine message db for bb post id |
||
9 | # Import all posts to current forums (map forum id's), saving bb post id to new column |
||
10 | # enter messages parent ids |
||
11 | 10 | Amber Herold | # edit posts to put into new forum |
12 | # delete unwanted forums |
||
13 | 1 | Amber Herold | |
14 | 10 | Amber Herold | |
15 | 1 | Amber Herold | h2. Redmine DB Tables |
16 | |||
17 | +Messages+ |
||
18 | |||
19 | id board_id parent_id subject content author_id replies_count last_reply_id created_on updated_on locked sticky |
||
20 | |||
21 | +Boards+ |
||
22 | |||
23 | id project_id name description position topics_count messages_count last_message_id |
||
24 | |||
25 | |||
26 | +Users+ |
||
27 | |||
28 | id login hashed_password firstname lastname mail mail_notification admin status last_login_on language auth_source_id created_on updated_on type identity_url |
||
29 | |||
30 | |||
31 | h2. BB DB Tables |
||
32 | 2 | Amber Herold | |
33 | +Notre_forums+ |
||
34 | |||
35 | forum_id parent_id left_id right_id forum_parents forum_name forum_desc forum_desc_bitfield forum_desc_options forum_desc_uid forum_link forum_password forum_style forum_image forum_rules forum_rules_link forum_rules_bitfield forum_rules_options forum_rules_uid forum_topics_per_page forum_type forum_status forum_posts forum_topics forum_topics_real forum_last_post_id forum_last_poster_id forum_last_post_subject forum_last_post_time forum_last_poster_name forum_last_poster_colour forum_flags display_subforum_list display_on_index enable_indexing enable_icons enable_prune prune_next prune_days prune_viewed prune_freq |
||
36 | 3 | Amber Herold | |
37 | +Notre_posts+ |
||
38 | |||
39 | post_id topic_id forum_id poster_id icon_id poster_ip post_time post_approved post_reported enable_bbcode enable_smilies enable_magic_url enable_sig post_username post_subject post_text post_checksum post_attachment bbcode_bitfield bbcode_uid post_postcount post_edit_time post_edit_reason post_edit_user post_edit_count post_edit_locked |
||
40 | |||
41 | 4 | Amber Herold | |
42 | |||
43 | +Notre_topics+ |
||
44 | |||
45 | topic_id forum_id icon_id topic_attachment topic_approved topic_reported topic_title topic_poster topic_time topic_time_limit topic_views topic_replies topic_replies_real topic_status topic_type topic_first_post_id topic_first_poster_name topic_first_poster_colour topic_last_post_id topic_last_poster_id topic_last_poster_name topic_last_poster_colour topic_last_post_subject topic_last_post_time topic_last_view_time topic_moved_id topic_bumped topic_bumper poll_title poll_start poll_length poll_max_options poll_last_vote poll_vote_change |
||
46 | |||
47 | 3 | Amber Herold | +Notre_users+ |
48 | |||
49 | user_id user_type group_id user_permissions user_perm_from user_ip user_regdate username username_clean user_password user_passchg user_pass_convert user_email user_email_hash user_birthday user_lastvisit user_lastmark user_lastpost_time user_lastpage user_last_confirm_key user_last_search user_warnings user_last_warning user_login_attempts user_inactive_reason user_inactive_time user_posts user_lang user_timezone user_dst user_dateformat user_style user_rank user_colour user_new_privmsg user_unread_privmsg user_last_privmsg user_message_rules user_full_folder user_emailtime user_topic_show_days user_topic_sortby_type user_topic_sortby_dir user_post_show_days user_post_sortby_type user_post_sortby_dir user_notify user_notify_pm user_notify_type user_allow_pm user_allow_viewonline user_allow_viewemail user_allow_massemail user_options user_avatar user_avatar_type user_avatar_width user_avatar_height user_sig user_sig_bbcode_uid user_sig_bbcode_bitfield user_from user_icq user_aim user_yim user_msnm user_jabber user_website user_occ user_interests user_actkey user_newpasswd user_form_salt |
||
50 | 5 | Amber Herold | |
51 | |||
52 | 7 | Amber Herold | h2. Conversion tables |
53 | 1 | Amber Herold | |
54 | 7 | Amber Herold | |
55 | 1 | Amber Herold | h3. Redmine Users |
56 | |||
57 | 14 | Amber Herold | Search for the user to have an existing entry, if not their posts will be assigned to anonymous. |
58 | |||
59 | 1 | Amber Herold | |_.Redmine Entry|_.BB Entry| |
60 | 5 | Amber Herold | |id|| |
61 | 7 | Amber Herold | |login|notre_users->username| |
62 | 1 | Amber Herold | |hashed_password|| |
63 | 5 | Amber Herold | |firstname|| |
64 | |lastname|| |
||
65 | 7 | Amber Herold | |mail|Notre_users->user_email| |
66 | 1 | Amber Herold | |mail_notification|| |
67 | 5 | Amber Herold | |admin|| |
68 | |status|| |
||
69 | |last_login_on|| |
||
70 | 7 | Amber Herold | |language|Notre_users->user_lang| |
71 | 5 | Amber Herold | |auth_source_id|| |
72 | |created_on|| |
||
73 | |updated_on|| |
||
74 | |type|| |
||
75 | |identity_url|| |
||
76 | 8 | Amber Herold | |
77 | 1 | Amber Herold | |
78 | 10 | Amber Herold | h3. Redmine Boards |
79 | |||
80 | 1 | Amber Herold | We will create these from scratch - Development, Using Leginon, Using Appion, Tomography, Installation, Administration Tools |
81 | |||
82 | |_.Redmine Entry|_.BB Entry| |
||
83 | 9 | Amber Herold | |id|| |
84 | 13 | Amber Herold | |project_id|(the leginon id)| |
85 | 14 | Amber Herold | |name|Notre_forums->forum_name| |
86 | |description|Notre_forums->forum_desc| |
||
87 | 1 | Amber Herold | |position|| |
88 | 18 | Amber Herold | |topics_count|Notre_forums->forum_topics| |
89 | |messages_count|Notre_forums->forum_posts| |
||
90 | |last_message_id|After all messages are ported add: Notre_forums->forum_last_post_id->Redmine Messages->bb_post_id->id| |
||
91 | 14 | Amber Herold | |bb_forum_id|Notre_forums->forum_id| |
92 | 9 | Amber Herold | |
93 | 1 | Amber Herold | |
94 | 9 | Amber Herold | |
95 | 1 | Amber Herold | h3. Redmine Messages |
96 | 9 | Amber Herold | |
97 | 1 | Amber Herold | |_.Redmine Entry|_.BB Entry| |
98 | |id|| |
||
99 | 17 | Amber Herold | |board_id|Notre_posts->forum_id->Redmine Boards->bb_forum_id->id| |
100 | 14 | Amber Herold | |parent_id|Add these as second step after all posts moved over, Notre_posts->topic_id->Notre_topics->topic_first_post_id->Redmine Messages->bb_post_id->id| |
101 | 12 | Amber Herold | |subject|Notre_posts->post_subject| |
102 | |content|Notre_posts->post_text (need to get BLOB)| |
||
103 | 14 | Amber Herold | |author_id|Notre_posts->poster_id->Notre_users->user_email->Users->mail->Users->id, if does not exist assign to anonymous| |
104 | 12 | Amber Herold | |replies_count|Set all to 0 then check Notre_topics->topic_first_post_id and update that message with Notre_topics->topic_replies| |
105 | 14 | Amber Herold | |last_reply_id|Set all to NULL then check Notre_topics->topic_first_post_id->Redmine Messages->bb_post_id->id and update that message with Notre_topics->topic_last_post_id->Redmine Messages->bb_post_id->id| |
106 | 13 | Amber Herold | |created_on|Notre_posts->post_time (may need a conversion)| |
107 | |updated_on|Notre_posts->post_edit_time (may need a conversion)| |
||
108 | |locked|Notre_posts->post_edit_locked| |
||
109 | |sticky|no| |
||
110 | 14 | Amber Herold | |bb_post_id|Notre_posts->post_id| |
111 | 15 | Amber Herold | |
112 | |||
113 | |||
114 | h2. Commands |
||
115 | |||
116 | |||
117 | h3. Make backups |
||
118 | |||
119 | First backup the tables that we will be modifying: |
||
120 | |||
121 | bq. mysqldump -u amber -p --skip-lock-tables --extended-insert redmine boards > boards-preport.sql |
||
122 | |||
123 | bq. mysqldump -u amber -p --skip-lock-tables --extended-insert redmine messages > messages-preport.sql |
||
124 | 16 | Amber Herold | |
125 | |||
126 | h3. Add temporary columns to the boards and messages tables |
||
127 | |||
128 | <pre> |
||
129 | ALTER TABLE boards |
||
130 | ADD bb_post_id int(11); |
||
131 | |||
132 | ALTER TABLE messages |
||
133 | ADD bb_forum_id int(11); |
||
134 | </pre> |
||
135 | 1 | Amber Herold | |
136 | 16 | Amber Herold | |
137 | 1 | Amber Herold | |
138 | 18 | Amber Herold | h3. Add forums |
139 | 1 | Amber Herold | |
140 | 18 | Amber Herold | <pre> |
141 | INSERT INTO redmine.boards (project_id, name, description, topics_count, messages_count, bb_forum_id) |
||
142 | SELECT redmine.projects.id, bb2.Notre_forums.forum_name, bb2.Notre_forums.forum_desc, bb2.Notre_forums.forum_topics, bb2.Notre_forums.forum_posts, bb2.Notre_forums.forum_id |
||
143 | FROM redmine.projects, bb2.Notre_forums |
||
144 | WHERE redmine.projects.identifier="leginon" |
||
145 | </pre> |
||
146 | 16 | Amber Herold | |
147 | |||
148 | |||
149 | |||
150 | |||
151 | h3. Create a backup of the tables |
||
152 | |||
153 | bq. mysqldump -u amber -p --skip-lock-tables --extended-insert redmine boards > boards-postport.sql |
||
154 | |||
155 | bq. mysqldump -u amber -p --skip-lock-tables --extended-insert redmine messages > messages-postport.sql |
||
156 | |||
157 | |||
158 | h3. Remove the temporary columns |
||
159 | |||
160 | <pre> |
||
161 | ALTER TABLE boards |
||
162 | DROP COLUMN bb_post_id; |
||
163 | |||
164 | ALTER TABLE messages |
||
165 | DROP COLUMN bb_forum_id; |
||
166 | </pre> |