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