<?php echo "Migrating Maniphest custom field configuration...\n"; $old_key = 'maniphest.custom-fields'; $new_key = 'maniphest.custom-field-definitions'; if (PhabricatorEnv::getEnvConfig($new_key)) { echo "Skipping migration, new data is already set.\n"; return; } $old = PhabricatorEnv::getEnvConfigIfExists($old_key); if (!$old) { echo "Skipping migration, old data does not exist.\n"; return; } $new = array(); foreach ($old as $field_key => $spec) { $new_spec = array(); foreach ($spec as $key => $value) { switch ($key) { case 'label': $new_spec['name'] = $value; break; case 'required': case 'default': case 'caption': case 'options': $new_spec[$key] = $value; break; case 'checkbox-label': $new_spec['strings']['edit.checkbox'] = $value; break; case 'checkbox-value': $new_spec['strings']['view.yes'] = $value; break; case 'type': switch ($value) { case 'string': $value = 'text'; break; case 'user': $value = 'users'; $new_spec['limit'] = 1; break; } $new_spec['type'] = $value; break; case 'copy': $new_spec['copy'] = $value; break; } } $new[$field_key] = $new_spec; } PhabricatorConfigEntry::loadConfigEntry($new_key) ->setIsDeleted(0) ->setValue($new) ->save(); echo "Done.\n";