目的
まぁ、色々とアーキテクチャ考えている中で、ふとCloudantを繋ぎ変えてみたくなったのです。
変更する箇所
分かる人には分かるということで十分な情報かと思いましたのであまり細かく書きませんが。。
管理画面より
- 「接続」でCloudantをバインドし直す。この際、古い方のアンバインドの際は再ステージ不要だと思うんですが、新しい方をバインドする時には再ステージしないと反映されません。ただ、この段階で再ステージしたところでエラーにはなります。エラーは気にせず下記を実施します。
- (ちなみに、試しに複数のCloudantのバインドも普通に出来ます。この場合、私はNode-red内でprocess.envあたりからCloudantへの接続情報取って来てたんですが、配列の順番がバインドした順番ではなく別なソートがかかってるみたいなので、元々のCloudantは[0]で取ってくるということが出来ず困りました。まぁ余談です。)
- 環境変数で
NODE_RED_STORAGE_NAME
という変数を新規で作成し、新しくバインドしたCloudantのサービス名を入れる。この際の名前は「接続」で表示される名前を使う。(地味にbluemix-settings.jsの中で使われていて、ここ見落としてたのでしばらくアプリ起動が出来ずハマった。)
設定ファイルより
-
manifest.yml
の下部にserviceという項目があるので、そこを修正する。この際のサービス名も「接続」で表示される名前でOK。
再ステージが完了すると
manifest.ymlの修正をコミットしてツールチェーンにより再ステージが完了したら、/red
を叩いてもエラーが帰って来るようになります。何もファイルが無いからです。
なので、/
を叩いてNode-redの再設定を行うと、新しいCloudantにnodered
データベースがなければ作成され、既にあれば、その配下にNode-redのサービス名/flow
などのファイルが作成されて来て普通に使えます。
もし元々のFlowを使いたい場合は、前のCloudantのnoderedデータベースを消してなければそこのFlowをコピーしてくれば大丈夫です。
以上です。
紆余曲折ありましたが、最終的には以外とシンプルに変更できました。