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