| ... | ... |
@@ -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 |