![見出し画像](https://assets.st-note.com/production/uploads/images/26149699/rectangle_large_type_2_410dc02b3e3ee5bc08fbd534e29e4a09.png?width=1200)
新旧Redash間のデータ移行をRedash API経由で行うPython Scriptを公開しました
これはなに?
新旧Redash間のデータ移行をRedash API経由で行うPython Scriptです。
どんな時に使えるか?
古いバーションのRedashを使っていて、新しいバーションのRedashへ移行したい!的な場面で使えます。
移行のために新旧Redashインスタンスの2つ立ち上げて、今回作ったスクリプトを実行することで、Redashのいくつかのデータが移行できます。
なぜAPI経由の移行なのか?
Redashの移行方法は調べるとこれまでの知見が色々出てきます。
今回なぜAPI経由でデータ移行したかというと、私にRedash構築の知識がなく、構築済みのRedash間をAPIを使ってゴニョゴニョすることしかできなかったからです。
移行実績
旧 Redash 6.0.0+b8536 から 新 Redash 8.0.0+b32245 へのデータ移行を今回公開したスクリプトで行いました。
注意点
Redashの全データが移行できるスクリプトではないです。
私が移行作業を行う上で最低限必要なデータのみ移行できるように書いたスクリプトです。
移行要件次第でスクリプトを書き換える必要があります。
移行までの過程
移行方法を調べたが、Redash構築の知識がなかったのでRedash APIを使って移行を検討。
Redash APIを理解して、Redash間のデータ移行にチャレンジする😇
— shinobu.aab (@operandoOS) March 25, 2020
Redash APIを調べて、移行スクリプトを最初Goで書こうと考えていた。
移行のスクリプトはGoで書くことにした
— shinobu.aab (@operandoOS) March 25, 2020
調べた感じRedashのAPIはレスポンスをそのままゴニョゴニョ利用すれば、登録API系にも使える感じになってるのでありがたい
QueryとグラフとダッシュボードあたりならAPI使った移行もできそうな予感
Goでスクリプトを雑に書き始めたところに、10Xの石田さんがRedash APIを使った移行スクリプトを紹介してくれた🙏
https://t.co/p8cCFLbdew 昔redashに問い合わせたらこんなスクリプトをシェアしてもらいました(参考になれば)
— Koichi Ishida (@wapa5pow) March 25, 2020
紹介してもらった移行スクリプトはこちら。
https://gist.github.com/arikfr/e1c01f6c04d8348da52f33393b5bf65d
紹介してもらった移行スクリプトを動かしてみる。
うまく動かなかったので、スクリプトを一部修正。
修正&実行を何度かトライしてみて、個人的に満足できる移行ができたのでおわり。
サポートしてもらうことで、キンパツは大好物のミスドが食べられます!よろしくお願いします!