# サーバーの新しいバージョンへの移行

> Learn how to migrate your Unity Licensing Server to a new version.

新しいバージョンのサーバーでは、異なるサーバーデータベースやサーバー設定が必要になる場合があります。例えば、バージョン 1.6 からバージョン 1.9 を実行したい場合、サーバーには異なる設定が必要になります。

移行プロセスでは、[サーバー設定ファイル](./server-admin.md#advanced-server-configuration) の `serverVersion` プロパティの確認が行われます。Unity Licensing Server の現在のバージョンに新しいバージョンとの互換性がないことを検出すると、移行プロセスは以下のメッセージを表示して停止します。

```bash
Cannot start the licensing server. 
Incompatible version is already installed. 
Please, make sure to stop existing Licensing.Server 
service (if it is running) and run setup command.
```

この非互換性を解決するには、使用している OS に応じたコマンドを実行します。

* **Linux**: Linuxのターミナルを使用して、`sudo` として `./Unity.Licensing.Server setup` を実行します。
* **Windows**: Windows PowerShell を管理者として開き、`.\Unity.Licensing.Server.exe setup` を実行します。

```bash
- - -
Welcome to Unity Licensing Server setup command line interface.
This setup will help you configure your license server 
and generate server registration request file.
- - -
Upgrading from 1.6.0 to 1.9.0...
Backup installed version 1.6.0...Done
Scripts to run: 1.9.0
Executing 1.9.0...Done
Stamping version 1.9.0...Done
Successfully migrated from 1.6.0 to 1.9.0
```

> **Important:**
>
> **setup コマンドを実行する前に、[Licensing Server サービス](./server-setup-svc.md) を停止してください**。
>
> ライセンスサーバーの移行を開始する前に、必ずダウンタイムの計画を立ててください。現在のバージョンとターゲットバージョンによっては、移行に数分かかることがあります。例えば、Unity のラボでは、1.11.0 より前のバージョンから 1.11.0 より後のバージョンへの移行を 3 GB のデータベースで完了するのに 15 分かかりました。
>
> 複雑な移行では、先に進む前に確認のプロンプトが表示されます。

確認が必要な移行例 (Windows):

```bash
> .\Unity.Licensing.Server.exe setup
- - - -
Welcome to Unity Licensing Server setup command line interface.
This setup will help you configure your license server 
and generate server registration request file.
- - - -

Upgrading from 1.10.0 to 1.11.0...

This migration can take more than a few minutes. Are you sure you want to run it now? [y/N] y

Proceeding with migration...
Backup installed version 1.10.0...Done
Scripts to run: 1.11.0
Executing 1.11.0...Done
Stamping version 1.11.0...Done
Successfully migrated from 1.10.0 to 1.11.0
Enter the server name (e.g. LicenseServer):
```

> **Note:**
>
> The 移行プロセスでは、サーバーのログファイルに詳細情報が書き込まれますが、新しい情報が表示されるまでに数分かかる場合があります。

## 移行の仕組み##how-migration-works

`setup` コマンドは、現在のサーバーのバージョンを検出し、移行の開始前にサーバーのデータを `LicensingServerBackups` ディレクトリにコピーします。このディレクトリの場所は、サーバーの OS とライセンスサーバーのバージョンによって異なります。

* **Linux**:
  * バージョン 2.0 以降: `/usr/share/unity3d/LicensingServerBackups`
  * バージョン 1.x： `~/.config/unity3d/Unity/LicensingServerBackups`
* **Windows**:
  * バージョン 2.0 以降: `%PROGRAMDATA%\Unity\LicensingServerBackups`
  * バージョン 1.x： `%LOCALAPPDATA%\Unity\LicensingServerBackups`

データを新しいサーバーのバージョンと互換性を持つように変換することにより、移行が続行されます。移行が完了すると、サーバーの以前の設定時の情報を使って、設定プロセスが開始されます。

> **Note:**
>
> If the 移行中にコマンドで問題が発生した場合は、移行がキャンセルされ、データは移行前の状態に復元されます。

### 許可リストを使用した管理者アクセス##admin-access

バージョン 1.x から移行する場合、IP アドレスを使用して管理者アクセスを制御する許可リストを設定している可能性があります。バージョン 2.0 以降に移行する場合、管理者アクセス権を維持するための明示的な手順はありません。許可リストに含まれる IP アドレスは、API の `admin` エンドポイントと [ダッシュボード](./server-admin-dash.md) の管理者モードに引き続きアクセスできます。許可リストに記載された IP アドレスを持つユーザーがダッシュボードにアクセスすると、ログイン画面をスキップして自動的に管理者モードにログインします。

## データベースの復元##restore-database

サーバーを上位バージョンに移行する際に、`setup` コマンドによってデータベースファイルのバックアップコピーが自動的に作成されます。復元に失敗すると、以下の重大なエラーメッセージが表示されます。

```bash
An error occurred while restoring a backup.
```

これは、サーバーが無効な状態であり、以前のサーバーのバージョンを引き続き使用できなくなる可能性があることを示しています。このエラーを修正するには、`LicensingServerBackups/<your_old_server_version>/` ディレクトリのコンテンツを `LicensingServer` ディレクトリにコピーして、バックアップデータを手動で復元します。
例:

```plaintext
├── LicensingServer
│   ├── config
│   │   ├── key-b4573620-ca22-423f-8d52-e3a767391234.xml
│   │   ├── licensing-server-config.json
│   │   └── unity.licensing.delegation.key
│   ├── data
│   └── wwwroot\v1\package\acl
│
└── LicensingServerBackups
    └── 1.6.0
        ├── config
        ├── data
        └── wwwroot
```

サーバーを以前のバージョンに復元するには、以下のステップに従います。

1. 既存のデータベースをターゲットフォルダーに入れます。ターゲットフォルダーは、サーバーの OS とライセンスサーバーのバージョンによって異なります。

   * **Linux**:
     * バージョン 2.0 以降: `/usr/share/unity3d/LicensingServer/data/`
     * バージョン 1.x： `~/.config/unity3d/Unity/LicensingServer/data/`
   * **Windows**:
     * バージョン 2.0 以降: `%PROGRAMDATA%\Unity\LicensingServer\data\`
     * バージョン 1.x： `%LOCALAPPDATA%\Unity\LicensingServer\data\`

2. ファイルの名前を `LicensingServerDb.sqlite` に変更します。

## その他のリソース##resources

* [setup コマンドの実行](./server-setup-cfg-v2.md#running-the-setup-command) (バージョン 2.0 以降)
* [setup コマンドの実行](./server-setup-cfg-v1.md#running-the-setup-command) (バージョン 1.x)
