はじめに
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.0–rc.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のスキーマ変更は不要。