Web・IT うんたらら

業務系とWeb系の狭間でIT業界を彷徨いながら備忘録と足跡を残していきます

GitLabサーバ移行後、Issues内の添付ファイルや画像のURLを修正する

背景

ここ最近の記事で色々とメモしていたとおり、社内のGitLabサーバをクラウドに移行しました。 概ね上手く稼働していたのですが、暫定で残していた元サーバを終了させたところで問題発生。

事象

移行先のIssuesにある画像のURLが移行元のままになっており、画像や添付ファイルが全てリンク切れに。 Issuesを簡易チケット管理として使っていたため、これはちょっと困っりました。

修正手順

まぁDBだし、最悪値を直接置換してやればいいだろう...ということでやってみました。

su -s /bin/sh gitlab-psql -c '/opt/gitlab/embedded/bin/psql -h /var/opt/gitlab/postgresql gitlabhq_production'

これでgitlab-ceのPostgreSQLのシェルが立ち上がるので、Issue関連のテーブルの中身を書き換えてあげればOK。

\d

SELECT relname, n_live_tup FROM pg_stat_user_tables WHERE schemaname='public';

なんかでそれっぽいテーブルを探すと、「issues」がイシュー本体、「notes」にコメントが格納されている模様。

ちょっと怖いですが単純にREPLACEします。※実施は自己責任でお願いします。

UPDATE issues SET description=REPLACE(description,'移行元URL','移行先URL');
UPDATE notes SET note=REPLACE(note,'移行元URL','移行先URL')
\q //終了

最後にキャッシュをクリアすれば反映されました。

gitlab-rake cache:clear