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