| ... | ... |
@@ -56,10 +56,66 @@ unless ($new_user_count) {
|
| 56 | 56 |
} |
| 57 | 57 |
} |
| 58 | 58 |
|
| 59 |
+# Copy project data |
|
| 60 |
+my $old_projects = $old_dbi->select(table => 'project')->all; |
|
| 61 |
+my $new_project_count = $new_dbi->select('count(*)', table => 'project')->value;
|
|
| 62 |
+unless ($new_project_count) {
|
|
| 63 |
+ for my $old_project (@$old_projects) {
|
|
| 64 |
+ |
|
| 65 |
+ my @new_project_columns = qw( |
|
| 66 |
+ row_id |
|
| 67 |
+ id |
|
| 68 |
+ default_branch |
|
| 69 |
+ private integer |
|
| 70 |
+ ignore_space_change |
|
| 71 |
+ guess_encoding |
|
| 72 |
+ ); |
|
| 73 |
+ |
|
| 74 |
+ my $new_project = {};
|
|
| 75 |
+ for my $new_project_column (@new_project_columns) {
|
|
| 76 |
+ if (exists $old_project->{$new_project_column}) {
|
|
| 77 |
+ $new_project->{$new_project_column} = $old_project->{$new_project_column};
|
|
| 78 |
+ } |
|
| 79 |
+ } |
|
| 80 |
+ |
|
| 81 |
+ # name is copied to id |
|
| 82 |
+ if (exists $old_project->{name}) {
|
|
| 83 |
+ $new_project->{id} = $old_project->{name};
|
|
| 84 |
+ } |
|
| 85 |
+ |
|
| 86 |
+ # original_pid is copied to original_project, which is converted to project.row_id |
|
| 87 |
+ if (exists $old_project->{original_pid}) {
|
|
| 88 |
+ my $project_row_id = $old_dbi->select( |
|
| 89 |
+ 'row_id', |
|
| 90 |
+ table => 'project', |
|
| 91 |
+ where => {
|
|
| 92 |
+ original_pid => $old_project->{original_pid}
|
|
| 93 |
+ }, |
|
| 94 |
+ append => 'order by row_id' |
|
| 95 |
+ )->value; |
|
| 96 |
+ if ($project_row_id && $project_row_id ne $new_project->{row_id}) {
|
|
| 97 |
+ $new_project->{original_project} = $project_row_id;
|
|
| 98 |
+ } |
|
| 99 |
+ } |
|
| 100 |
+ |
|
| 101 |
+ # user_id is copied to user, which is converted to user.row_id |
|
| 102 |
+ my $user_row_id = $old_dbi->select( |
|
| 103 |
+ 'row_id', |
|
| 104 |
+ table => 'user', |
|
| 105 |
+ where => {id => $old_project->{user_id}}
|
|
| 106 |
+ )->value; |
|
| 107 |
+ if (defined $user_row_id) {
|
|
| 108 |
+ $new_project->{user} = $user_row_id;
|
|
| 109 |
+ } |
|
| 110 |
+ else {
|
|
| 111 |
+ next; |
|
| 112 |
+ } |
|
| 113 |
+ |
|
| 114 |
+ $new_dbi->insert($new_project, table => 'project'); |
|
| 115 |
+ } |
|
| 116 |
+} |
|
| 117 |
+ |
|
| 59 | 118 |
=pod |
| 60 |
-user |
|
| 61 | 119 |
collaboration |
| 62 |
-project |
|
| 63 |
-pull_request |
|
| 64 | 120 |
ssh_public_key |
| 65 | 121 |
=cut |