Showing 1 changed files with 36 additions and 0 deletions
+36
old/copy_database_v1_to_v2
... ...
@@ -115,6 +115,42 @@ unless ($new_project_count) {
115 115
   }
116 116
 }
117 117
 
118
+# Copy ssh_public_key data
119
+my $old_ssh_public_keys = $old_dbi->select(table => 'ssh_public_key')->all;
120
+my $new_ssh_public_key_count = $new_dbi->select('count(*)', table => 'ssh_public_key')->value;
121
+unless ($new_ssh_public_key_count) {
122
+  for my $old_ssh_public_key (@$old_ssh_public_keys) {
123
+    
124
+    my @new_ssh_public_key_columns = qw(
125
+      row_id
126
+      key
127
+      title
128
+    );
129
+    
130
+    my $new_ssh_public_key = {};
131
+    for my $new_ssh_public_key_column (@new_ssh_public_key_columns) {
132
+      if (exists $old_ssh_public_key->{$new_ssh_public_key_column}) {
133
+        $new_ssh_public_key->{$new_ssh_public_key_column} = $old_ssh_public_key->{$new_ssh_public_key_column};
134
+      }
135
+    }
136
+
137
+    # user_id is copied to user, which is converted to user.row_id
138
+    my $user_row_id = $old_dbi->select(
139
+      'row_id',
140
+      table => 'user',
141
+      where => {id => $old_ssh_public_key->{user_id}}
142
+    )->value;
143
+    if (defined $user_row_id) {
144
+      $new_ssh_public_key->{user} = $user_row_id;
145
+    }
146
+    else {
147
+      next;
148
+    }
149
+
150
+    $new_dbi->insert($new_ssh_public_key, table => 'ssh_public_key');
151
+  }
152
+}
153
+
118 154
 =pod
119 155
 collaboration
120 156
 ssh_public_key