Project

General

Profile

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>