LoginSignup
7
3

More than 5 years have passed since last update.

Dockerで動かしているredashをv4.0.0にアップグレードする方法

Last updated at Posted at 2018-04-19

はじめに

redash v4.0.0がリリースされました。1

現時点で Docker Hub に latest タグで登録されているのはまだ v3系のイメージですが、リリース直後に4.0.0.b3948というイメージが登録されており、おそらくこれは4.0.0の公式版かそれに近いイメージだと思われます。2

そのイメージを利用してv3からv4にアップグレードする手順を共有しておきます。

手順

イメージのインストール

まず、docker hubから上記のイメージを取得します。

% docker pull redash/redash:4.0.0.b3948

docker-compose.production.yml を編集して上記イメージを使用するようにします。

*** docker-compose.production.yml.bak   2018-04-19 11:56:49.057986536 +0900
--- docker-compose.production.yml       2018-04-19 11:57:25.017988679 +0900
***************
*** 7,13 ****
  version: '2'
  services:
    server:
!     image: redash/redash:latest
      command: server
      depends_on:
        - postgres
--- 7,13 ----
  version: '2'
  services:
    server:
!     image: redash/redash:4.0.0.b3948
      command: server
      depends_on:
        - postgres

これで、


% docker-compose -f docker-compose.production.yml up -d

と実行すればイメージが更新されて再起動します。ただし、v3以前からアップグレードした場合、DBスキーマを更新しないと500エラーになってしまいます。

DBスキーマ更新

migrationファイルの作成

起動したserverコンテナの/app/migrations/versions/ に migrationファイルが用意されていればこの手順は不要です。なぜか存在しなかったので作る必要がありました。すでに存在していれば何もしないので実行して問題ありません。

% docker-compose -f docker-compose.production.yml run --rm server ./manage.py db migrate

これでいいはずなのですが、なぜか今回ここで生成したファイルを使ってアップグレードしようとするとエラーになるので、このファイルを編集する必要があります。今回の場合、/app/migrations/versions/9a29a510be26_.py というファイルでした。3

修正は下記のように1行挿入するだけです。

*** 9a29a510be26_.py.bak        2018-04-19 12:22:44.334204420 +0900
--- 9a29a510be26_.py    2018-04-19 01:46:28.162376408 +0900
***************
*** 7,12 ****
--- 7,13 ----
  """
  from alembic import op
  import sqlalchemy as sa
+ import sqlalchemy_utils

  # revision identifiers, used by Alembic.
  revision = '9a29a510be26'

コンテナにviが入ってないので、docker cp コマンドでホストに上記ファイルをもってきて編集して同じく docker cpで書き戻しました。

upgrade

重要なデータがある場合、念のためバックアップを忘れずに。

% docker-compose -f docker-compose.production.yml run --rm server ./manage.py db upgrade

これで完了です。


  1. https://github.com/getredash/redash/releases/tag/v4.0.0 

  2. https://hub.docker.com/r/redash/redash/tags/ 

  3. 環境により異なる可能性があるので upgradeのエラーメッセージを確認してください。 

7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3