Docker版 redashをv5 (5.0) へupdate!

はじめに

redash v5 (5.0)がリリースされた。

https://discuss.redash.io/t/v5-beta-is-now-ready/2240

今までは4.0.0-rc.1(ほぼlatest)を使っていたが、v5へupdateしたときの手順を記す。

手順

PostgreSQLのバックアップを取得

docker ps
docker exec -it redash_postgres_1 /bin/bash
pg_dump -U postgres postgres | gzip > /tmp/redash_backup.gz
exit
docker cp redash_postgres_1:/tmp/redash_backup.gz .

redashの停止

# docker-compose -f docker-compose.production.yml down
Stopping redash_nginx_1    ... 
Stopping redash_server_1   ... 
Stopping redash_postgres_1 ... 
Stopping redash_worker_1   ... 
Stopping redash_nginx_1    ... done
Stopping redash_server_1   ... done
Stopping redash_postgres_1 ... done
Stopping redash_worker_1   ... done
Stopping redash_redis_1    ... done
Removing redash_nginx_1    ... done
Removing redash_server_1   ... done
Removing redash_postgres_1 ... done
Removing redash_worker_1   ... done
Removing redash_redis_1    ... done
Removing network redash_default

docker-composeファイルを修正

# diff docker-compose.production.yml docker-compose.production.yml.20180808
10c10
<     image: redash/redash:5.0.0-beta.b4476
---
>     image: redash/redash:4.0.0-rc.1
26c26
<     image: redash/redash:5.0.0-beta.b4476
---
>     image: redash/redash:4.0.0-rc.1
# 

今までは4.0.0rc.1を使っていたが、そこを

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

の最新tagに変更した

PostgreSQLをv5用にconvert

# docker-compose -f docker-compose.production.yml run --rm server manage db upgrade
Starting redash_redis_1 ... done
Starting redash_postgres_1 ... done
[2018-08-08 01:48:59,768][PID:1][INFO][root] Generating grammar tables from /usr/lib/python2.7/lib2to3/Grammar.txt
[2018-08-08 01:48:59,850][PID:1][INFO][root] Generating grammar tables from /usr/lib/python2.7/lib2to3/PatternGrammar.txt
[2018-08-08 01:49:03,702][PID:1][INFO][alembic.runtime.migration] Context impl PostgresqlImpl.
[2018-08-08 01:49:03,703][PID:1][INFO][alembic.runtime.migration] Will assume transactional DDL.
[2018-08-08 01:49:03,736][PID:1][INFO][alembic.runtime.migration] Running upgrade 969126bd800f -> 1daa601d3ae5, add columns for disabled users
[2018-08-08 01:49:03,745][PID:1][INFO][alembic.runtime.migration] Running upgrade 1daa601d3ae5 -> d4c798575877, empty message
[2018-08-08 01:49:03,761][PID:1][INFO][alembic.runtime.migration] Running upgrade d4c798575877 -> e7004224f284, add_org_id_to_favorites
[2018-08-08 01:49:03,770][PID:1][INFO][alembic.runtime.migration] Running upgrade e7004224f284 -> a92d92aa678e, inline_tags
[2018-08-08 01:49:03,777][PID:1][INFO][alembic.runtime.migration] Running upgrade a92d92aa678e -> 0f740a081d20, inline_tags
[2018-08-08 01:49:03,782][PID:1][INFO][alembic.runtime.migration] Running upgrade 0f740a081d20 -> 71477dadd6ef, favorites_unique_constraint

 

docker-composeを起動

# docker-compose -f docker-compose.production.yml up -d
redash_postgres_1 is up-to-date
redash_redis_1 is up-to-date
Creating redash_worker_1 ... 
Creating redash_server_1 ... 
Creating redash_worker_1
Creating redash_server_1 ... done
Creating redash_nginx_1 ... 
Creating redash_nginx_1 ... done
# 

update確認

今まで使っていたURLにアクセスすると、v5になったredashに接続が可能

v5の感想

Queriesに”Favorites”機能が追加されたり、パラメータをブラウザ経由で設定できたりと今までより使い勝手が向上。


APIなどの機能テストをした後、本番もupdateしていきたい

リストア(おまけ)

今回は使わなかったけど、万が一databaseがおかしくなった場合、バックアップから復元することになる。その際の手順は以下の通り。一度drop databaseしたあと、バックアップしたデータを流し込む

docker cp /tmp/redash_backup.gz redash_postgres_1:/tmp/redash_backup.gz
docker exec -it redash_postgres_1 /bin/bash

psql -U postgres template1
DROP DATABASE IF EXISTS postgres;
CREATE DATABASE postgres;
\q
zcat /tmp/redash_backup.gz | psql -U postgres -d postgres

5.0.0-beta.b4476 から 現在のlatestへのupdate (2018/10/3 upadte)

5.0.0.b4754 から 現在のlatestへのupdateは、docker imageを切り替えるだけで大丈夫なようだ。

以下のように変更し、docker composeを立ち上げるだけでよい。

<     image: redash/redash:latest
---
>     image: redash/redash:5.0.0-beta.b4476

5.0.0.b4754 から 現在のlatestへのupdateではDBのスキーマ変更は不要。