GitLab14 => 15アップデート（docker-compose）

# GitLab15リリース！

5月22日にGitLabのバージョン15がリリースされました:tada::tada::tada:

https://about.gitlab.com/releases/2022/05/22/gitlab-15-0-released/

# アップデートしてみた

毎回GitLabのメジャーバージョンアップは何かしら起こるのですが、今回もすんなりとはいかなかったので備忘録として残しておきます

※v13からv14へのアップデートは以下を参照ください

https://qiita.com/teracy164/items/9916ac04bcfcd854a354

※環境はdocker-composeで構築しています。詳細は以下の記事を参照ください

https://qiita.com/teracy164/items/2f9ecaafc0a042c1f6df

## 何も考えずにアップデートしてみる。v14.0.0 => v15.0.0

`docker-compose down`で既存コンテナを削除した後、docker-compose.ymlにて以下のようにイメージを変更して`docker-compose up`でコンテナ作成してみました
- gitlabコンテナ：15.0.0-ce.0
- runnerコンテナ：alpine-v15.0.0

失敗しました。
最初に14.10.x系にアップグレードしてね。っていうメッセージが出てます。

```shell
 It seems you are upgrading from major version 14 to major version 15.
 It is required to upgrade to the latest 14.10.x version first before proceeding.
 Please follow the upgrade documentation at https://docs.gitlab.com/ee/update/index.html#upgrading-to-a-new-major-version
```

v13からv14の時も出た気がするので、これは想定内。

## マイナーバージョンの最新化。v14.0.0 => v14.10.3

### エラーが起きた

docker-compose.ymlにて以下のようにイメージを変更して`docker-compose up`でコンテナ作成してみました
- gitlabコンテナ：14.10.3-ce.0
- runnerコンテナ：v14.10.1

以下のようなエラーが出ました

```shell
 ================================================================================
 Error executing action `run` on resource 'bash[migrate gitlab-rails database]'
 ================================================================================

 ・・・

 ================================================================================
 Error executing action `run` on resource 'rails_migration[gitlab-rails]'
 ================================================================================

 ・・・
 rails_migration[gitlab-rails] (gitlab::database_migrations line 51) had an error: Mixlib::ShellOut::ShellCommandFailed: bash[migrate gitlab-rails database] (/opt/gitlab/embedded/cookbooks/cache/cookbooks/gitlab/resources/rails_migration.rb line 16) had an error: Mixlib::ShellOut::ShellCommandFailed: Command execution failed. STDOUT/STDERR suppressed for sensitive resource
```


### 原因調査

`docker exec -it gitlab bash`でdockerコンテナ内に入り、`gitlab-rake db:migrate --trace`を実行してログを確認したところ以下のエラーが出ていることが確認できました。

```shell
PG::UndefinedTable: ERROR:  relation "batched_background_migration_job_transition_logs" does not exist
LINE 8:  WHERE a.attrelid = '"batched_background_migration_job_trans...
```


### 対処

`gitlab batched_background_migration_job_transition_logs`で検索したところ以下を投稿を見つけたので、ここに記載されているコマンドを叩いてみました

https://gitlab.com/gitlab-org/gitlab/-/issues/353927#note_888445881

```shell
gitlab-rake db:migrate:up VERSION=20211123135255
gitlab-rake gitlab:background_migrations:finalize[CopyColumnUsingBackgroundMigrationJob,ci_builds,id,'[["id"\, "stage_id"]\, ["id_convert_to_bigint"\, "stage_id_convert_to_bigint"]]']
```

無事に14/10.3にアップグレードできました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/325108/53546daa-2b63-4911-062d-5d1715c722b7.png)


## メジャーバージョンアップ。v14.10.3 => v15.0.0

改めてdocker-compose.ymlにて以下のようにイメージを変更して`docker-compose up`でコンテナ作成してみました
- gitlabコンテナ：15.0.0-ce.0
- runnerコンテナ：alpine-v15.0.0　※イメージ名の規則が今までと変わっているため注意（alpine-等のprefixが付いた）

これで、無事にアップグレードできました！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/325108/68e4b85a-c9a5-96a8-9aed-4382c6d4b134.png)