> For AI agents: the complete documentation index is available at /resource/ucidm/docs/on-premise/1.9.0/llms.txt, the full documentation bundle is available at /resource/ucidm/docs/on-premise/1.9.0/llms-full.txt.

# migrate コマンド操作

データ移行処理を行う migrate コマンドの操作を紹介します。

api コンテナのアップグレード時に自動実行されるため、特別な理由がない限り、手動実行する必要はありません。

## アップグレード

バージョンを指定しない場合は api コンテナの ucidm バージョンを使ってマイグレーション処理が実行されます。

```bash
$ docker compose exec -it api /bin/migrate db -type up
```

`-version` で任意のバージョンを指定してアップグレードします。

```bash
$ docker compose exec -it api /bin/migrate db -type up -version 1.7.1
```

`-funcName` で特定のマイグレーション処理のみに限定してアップグレードします。

```bash
$ docker compose exec -it api /bin/migrate db -type up -version 1.7.1 -funcName Session
```

## ダウングレード

アップグレードによって変更した内容を元に戻したいときに実行します。データ構造上の変更であれば元に戻せます。但し、アップグレードによって一部のデータを削除してしまうような変更に対しては元の値に戻すことはできません。

1.7.1 のアップグレードによるマイグレーション処理を元に戻したいときは `-version` に 1.7.1 を指定します。

```bash
$ docker compose exec -it api /bin/migrate db -type down -version 1.7.1
```

`-funcName` で特定のマイグレーション処理のみに限定してダウングレードします。

```bash
$ docker compose exec -it api /bin/migrate db -type down -version 1.7.1 -funcName Session
```
