... | ... |
@@ -43,7 +43,8 @@ Setup database. |
43 | 43 |
|
44 | 44 |
./setup_database |
45 | 45 |
|
46 |
-If you used Gitprep version 1 from now, you need upgrade database. |
|
46 |
+If you used Gitprep version 1 and upgrage it to version 2, you need upgrade database |
|
47 |
+by the following command. |
|
47 | 48 |
|
48 | 49 |
mv data/gitprep.db data/gitprep_v1bak.db |
49 | 50 |
./setup_database |
... | ... |
@@ -151,7 +151,52 @@ unless ($new_ssh_public_key_count) { |
151 | 151 |
} |
152 | 152 |
} |
153 | 153 |
|
154 |
+# Copy collaboration data |
|
155 |
+my $old_collaborations = $old_dbi->select(table => 'collaboration')->all; |
|
156 |
+my $new_collaboration_count = $new_dbi->select('count(*)', table => 'collaboration')->value; |
|
157 |
+unless ($new_collaboration_count) { |
|
158 |
+ for my $old_collaboration (@$old_collaborations) { |
|
159 |
+ |
|
160 |
+ my @new_collaboration_columns = qw( |
|
161 |
+ row_id |
|
162 |
+ ); |
|
163 |
+ |
|
164 |
+ my $new_collaboration = {}; |
|
165 |
+ for my $new_collaboration_column (@new_collaboration_columns) { |
|
166 |
+ if (exists $old_collaboration->{$new_collaboration_column}) { |
|
167 |
+ $new_collaboration->{$new_collaboration_column} = $old_collaboration->{$new_collaboration_column}; |
|
168 |
+ } |
|
169 |
+ } |
|
170 |
+ |
|
171 |
+ # collaborator_id is copied to collaborator, which is converted to user.row_id |
|
172 |
+ my $user_row_id = $old_dbi->select( |
|
173 |
+ 'row_id', |
|
174 |
+ table => 'user', |
|
175 |
+ where => {id => $old_collaboration->{collaborator_id}} |
|
176 |
+ )->value; |
|
177 |
+ if (defined $user_row_id) { |
|
178 |
+ $new_collaboration->{collaborator} = $user_row_id; |
|
179 |
+ } |
|
180 |
+ else { |
|
181 |
+ next; |
|
182 |
+ } |
|
183 |
+ |
|
184 |
+ my $project_row_id = $old_dbi->select( |
|
185 |
+ 'row_id', |
|
186 |
+ table => 'project', |
|
187 |
+ where => {name => $old_collaboration->{project_name}} |
|
188 |
+ )->value; |
|
189 |
+ if (defined $project_row_id) { |
|
190 |
+ $new_collaboration->{project} = $project_row_id; |
|
191 |
+ } |
|
192 |
+ else { |
|
193 |
+ next; |
|
194 |
+ } |
|
195 |
+ |
|
196 |
+ $new_dbi->insert($new_collaboration, table => 'collaboration'); |
|
197 |
+ } |
|
198 |
+} |
|
199 |
+ |
|
154 | 200 |
=pod |
155 | 201 |
collaboration |
156 |
-ssh_public_key |
|
157 | 202 |
=cut |