Fix 500 errors with legacy appearance logos
Prior to GitLab 9.0, attachments were not tracked the uploads
table,
so it was possible that the appearance logos were just stored in the
database as a string and mounted via CarrierWave.
https://gitlab.com/gitlab-org/gitlab-ce/issues/29240 implemented in
GitLab 10.3 was supposed to cover populating the uploads
table for all
attachments, including all the logos from appearances. However, it's
possible that didn't work for logos or the uploads
entry was orphaned.
GitLab instances that had a customized logo with no associated uploads
entry would see Error 500s. The only way to fix this is to delete the
logo
column from the appearances
table and re-upload the attachment.
This change makes things more robust by falling back to the original behavior if the upload is not available.
This is a CE backport of https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/9277.