ページを選択

Docker での TestRail 9.4.1 へのアップグレード

docker-compose で構築した環境を TestRail 9.4.1 へアップグレードする方法について説明します。

前提

9.4.1 へのアップグレード手順は、現在ご利用の TestRail のバージョンによって異なります。

TestRail 7.0.2 からアップグレードする

TesRail 9.4.1 へ直接アップグレードするためのスクリプトを利用する必要があります。

テクマトリックス TestRail ユーザーページから以下の2点をダウンロード、もしくはこちらまでお問い合わせください。

    • TestRail 9.4.1 のインストールモジュール
    • 添付ファイル移行スクリプト

アップグレードの方法は添付ファイル移行スクリプト内のドキュメントをご確認ください。

TestRail 7.5.3 以降のバージョンからアップグレードする

TestRail 9.4.1 へアップグレードするには TestRail 8.0.4 を経由する必要があります。以下の流れでアップグレードを進めてください。

    1. 前準備
      • アップグレードに必要な docker-compose を入手します。
    2. バックアップの取得
    3. 旧環境の削除
    4. TestRail 8.0.4 へのアップグレード
    5. TestRail 9.4.1 へのアップグレード
    6. Cassandra の廃止

詳細な手順は本ページ内の次項「TestRail のアップグレード」以降をご確認ください。

TestRail のアップグレード

前準備

docker-compose をテクマトリックス TestRail ユーザーページからダウンロード、もしくはこちらまでお問い合わせください。

    • TestRail Server (docker-compose バージョンアップ用)
      • 以下 2つの docker-compose が含まれます。
        • testrail-docker-ja-master_804
        • testrail-docker-ja-master_941

バックアップ

アップグレード前にデータのバックアップを取得します。

アップグレード前の testrail-docker-ja-master ディレクトリから以下のディレクトリのコピーを取得します。

    • testrail-docker-ja-master\”{任意文字列}_config”
    • testrail-docker-ja-master\”{任意文字列}_cassandra”
    • testrail-docker-ja-master\”{任意文字列}_mysql”
    • testrail-docker-ja-master\”{任意文字列}_opt”
    • testrail-docker-ja-master\”{任意文字列}_rabbitmq”

旧環境の削除

    1. アップグレード前のコンテナ、ボリューム、ネットワークを削除します。
      docker-compose down -v
    2. アップグレード前のイメージを削除します。(イメージの名前はご利用環境に合わせてください。)
      docker rmi testrail-docker-ja-master_srv testrail-docker-ja-master_db testrail-docker-ja-master_cassandra rabbitmq

TestRail 804 へのアップグレード

    1. testrail-docker-ja-master_804 内の Dockerfiles ディレクトリで旧環境の testrail-docker-ja-master\Dockerfiles を上書きします。
    2. testrail-docker-ja-master\.env ファイルの TESTRAIL_VERSION を更新します。
      TESTRAIL_VERSION=8.0.4.7036
    3. docker-compose で起動します。(パッケージのダウンロードやビルドが実行されるため初回起動は 10 分程度必要です。)
      docker-compose up -d
    4. ホスト側から TestRail 用のコンテナに入ります。
      docker exec -it <testrail のコンテナ名> bash
    5. TestRail をアップグレードします。
      cd /var/www/testrail/
      php run.php update
    6. アップグレード完了後、WEB ブラウザから TestRail にアクセスして [管理] > [概要] > [情報] に表示されるバージョンを確認します。

TestRail 9.4.1 へのアップグレード

    1. 旧環境の削除 に従って、TestRail 8.0.4 の環境を削除します。
    2. testrail-docker-ja-master_941 内の Dockerfiles ディレクトリで旧環境の testrail-docker-ja-master\Dockerfiles を上書きします。
    3. testrail-docker-ja-master\.env ファイルの TESTRAIL_VERSION を更新します。
      TESTRAIL_VERSION=9.4.1.1002
    4. docker-compose で起動します。(パッケージのダウンロードやビルドが実行されるため初回起動は 10 分程度必要です。)
      docker-compose up -d
    5. ホスト側から TestRail 用のコンテナに入ります。
      docker exec -it <testrail のコンテナ名> bash
    6. TestRail をアップグレードします。
      cd /var/www/testrail/
      php run.php update
    7. アップグレード完了後、WEB ブラウザから TestRail にアクセスして [管理] > [概要] > [情報] に表示されるバージョンを確認します。
    8. 初回アクセス時に必ず WEBブラウザのキャッシュをクリア してください。
    9. config.php に chrome headless shell のパスを追加します。
      1. ホスト側から TestRail 用のコンテナに入ります。
        docker exec -it <testrail のコンテナ名> bash
      2. config.php を開きます。
        cd /var/www/testrail/config
        vi config.php
      3. Chrome Headless Shell のパスの設定を追加します。
        define('TR_CHROME_PATH', '/usr/bin/chrome-headless-shell-linux64/chrome-headless-shell');

Cassandraの廃止

TestRail Server 9.4 から、添付ファイルが格納される場所は Cassandra から MySQL に移行します。9.4 には、既存の添付ファイルを Cassandra から MySQL にコピーできる移行スクリプトが用意されています。

※本操作は TestRail 7.5 以降のバージョンから TestRail 9.4 にアップグレードした場合にだけ必要です。

移行はいつでも都合のよいときに実行できます。ただし、次のリリース (TestRail 9.5) からは、移行が完了していることがアップグレードの条件になります。移行が完了していない場合、移行が完了するまで、TestRail 9.5 および以降のすべてのアップデートをインストールできません。

バックアップの取得

TestRail のファイルとデータベースのバックアップを作成します。

※v9.4.1 アップグレード作業前にバックアップを取得している場合でも、v9.4.1のアップグレード後のバックアップを再取得してください。

移行スクリプトの実行

添付ファイルデータの格納先を Apache Cassandra から MySQL に移行するためのスクリプトを実行します。

    1. ホスト側から TestRail 用のコンテナに入ります。
      docker exec -it <testrail のコンテナ名> bash
    2. deprecation_script フォルダーに移動します。
      cd /var/www/testrail/deprecation_script
    3. 次のコマンドを使用して必要な依存パッケージをインストールします。
      composer update
    4. config.ini ファイルを開きます。
      vi config.ini
    5. データベースに接続するための認証情報を変更します (パスワードに特殊文字が含まれている場合は、二重引用符で囲みます)。.env ファイルをデフォルトで利用している場合は以下の設定になります。
      [SQL]
      host = db
      databaseName = testrail
      user = testrail
      password = testrailpass
      port = 3306
      driver = mysql
      
      [CASSANDRA]
      host = cassandra
      databaseName =
      user = cassandra
      password = cassandra
      port = 9042
      keyspace = testrail
      
      [ATTACHMENT]
      path = /opt/testrail/attachments/
    6. 前のステップがすべて正常に完了したら、Apache 起動ユーザーで TestRailCassandraDeprecation.php スクリプトを実行します。
      sudo -u www-data php TestRailCassandraDeprecation.php
    7. コマンド実行後、コンソールに出力される内容を確認してスクリプトの実行します。
      Welcome! We are about to start the Cassandra deprecation process.
      
      Please note that after deprecating Cassandra, our Team won't support downgrades to versions of TestRail with Cassandra.
      Do you still want to continue?
      
      Please type YES or NO.
      yes
      Please confirm the source and target databases:
      SOURCE:
      [Cassandra Information]
      Host: cassandra
      Keyspace: testrail
      User: cassandra
      Port: 9042
      
      TARGET:
      [SQL Information]
      Host: db
      Database Name: testrail
      User: testrail
      Port: 3306
      Driver: mysql
      
      Do you confirm? Please type YES or NO.
      yes
      
      The migration process may take a long time. So that we can notify you once it is completed,
      Would you like to configure an SMTP server before proceeding?
      no
      
      All ready to start Cassandra deprecation.
      The first step will be to migrate to the target database.
      This will be done in the background and may take a long time.
      
      Do you want to start? Please type YES or NO.
      yes
    8. remove_cassandra_attachments.php を実行して不要なファイルを削除します。
      sudo -u www-data php remove_cassandra_attachments.php /opt/testrail/attachments