
皆さん、ごきげんよう!!
今回の記事では、Bubbleにおけるバージョン管理とデータベースのバックアップ・コピーについて解説していきます。Bubbleでアプリを構築し終えた後に、そのアプリの運用をしていくにあたっては重要な内容なので、この記事を是非参考にしてみてください。
この記事の目次
バージョン管理
概要
注意: マージ処理中に発生したバグを調査していると、特により複雑なマージ状況では、予期せぬ動作につながる可能性があります。マージしてバグが疑われた場合、「ライブ」(またはバージョン)を以前の時点に戻すことができます。バージョンから別のバージョンに要素/ワークフロー/などをコピーすることも可能です。
すべてのBubbleアプリには、少なくとも2つのバージョンがあり、ライブバージョン(世界に公開されているバージョン)と開発バージョンがあります。すべてのアプリにはデフォルトで「テスト」と呼ばれる 1 つの開発バージョンが付属していますが、チームプラン、プロフェッショナルプラン、および専用プランのユーザーはそれ以上のバージョンを作成することができます。
バージョン内では、何か問題が発生した場合に備えて、Bubbleを使ってアプリケーションの変更を元に戻すことができます。保存ポイントを使用すると、特定のポイントに戻すことが簡単になりますが、変更は継続的に保存されるので、指定した時間に戻すことができます。どのくらい前に戻すことができるかは、構築する側の計画によって決定されます。
バージョン
上で説明したように、アプリケーションにはライブとテストの少なくとも2つのバージョンがあります。ライブはアプリの一般公開バージョンを表し、テストは変更を加えるバージョンです。 開発を終えたら、変更をテストからライブにデプロイすることができます。チームプラン、プロダクションプラン、および専用プランのユーザーは、複数の開発バージョンを持つことができます。
バージョン管理ドロップダウン
バージョン管理に関連する機能は、Previewボタンのすぐ左にあるバージョン管理ドロップダウンにあります。
現在アクティブなブランチの名前は、ツールバーとメニューの上部に表示されます。下のメニューから他のバージョンを選択したり、”Create a new version “をクリックして新しいバージョンを作成したりすることができます。メニューの上部では、現在のバージョンに関連する操作を実行することができます: ライブへのデプロイ、セーブポイントの作成、以前の時間やセーブポイントに戻す ( “履歴” をクリック)、または最近の変更をライブに同期します。
履歴ポップアップ
Historyボタンをクリックすると、プランによって制限されているように、現在のバージョンを以前の時点に戻すことができるポップアップが表示されます。Bubbleアプリへの変更は、無限に元に戻す方法で、細かい方法で保存されます。そのため、任意の時点でバージョンを元に戻すことが可能です。また、(バージョンドロップダウンから直接)セーブポイントを作成することもでき、アプリを特定の状態に簡単に戻すことができます。セーブポイントは、注釈や特定の日時のラベルのように考えることができます。履歴はバージョンに固有のものです。つまり、ライブにデプロイすると、ライブにはデプロイ分は表示されますが、それに至るまでの開発バージョンのセーブポイントは表示されません。
時刻は現地のタイムゾーンであり、データベースの状態には影響しないことに注意してください。
Live とバージョンを同期する
マルチバージョンアプリのユーザーが自分のバージョンを live にデプロイすると、他のバージョンが live と同期されなくなり、同期する必要があります。バージョンをライブと同期することで、新たにデプロイされた変更が組み込まれ、デプロイが可能になります。配置された変更のいずれかが直接競合する場合、ユーザーは両方のオプションが表示され、どちらの変更を維持するかを選択するように促されます。アプリが同期されると、デプロイすることができます。
開発バージョンはあなたが作業するもので、ライブバージョンは読み取り専用で、ユーザーが本番で操作するものです。開発モードでアプリケーションを復元し、古いバージョンのアプリケーションを本番環境にデプロイする必要がある場合は、本番環境にデプロイ(プッシュ)します。
開発版のデータベースに関する注意事項
概要:すべての開発バージョンは共通の「テスト」データベースを共有していますが、作成したカスタムタイプに関連付けられたデータは特定のバージョンに関連付けられたままです。つまり、「userA-type」のレコードは、userBが参照する同じデータベースに存在しますが、userBが同期するまでは、userBのバージョンには表示されません。
上述したように、すべてのアプリにはライブバージョンと少なくとも1つの開発バージョンがあります。ライブデータベースのレコードは、開発データベースのレコードとは独立しています。ライブデータベースをコピーして開発用データベースを置き換えることもできますし、その逆もできますが、例えば、ライブバージョンでサインアップしたユーザーが自動的に開発用データベースにもレコードを作成することはありません。
しかし、複数の開発バージョンではどうなるのでしょうか?覚えておくべき原則は、すべての開発バージョンは同じ「テスト」データベースを共有しますが、カスタムタイプに関連付けられたデータは特定のバージョンに関連付けられたままであるということです。これをさらに説明するために、以下にいくつかの例を示しておきます。AとBが両方ともアプリの開発バージョンであると仮定します。
・Aはメインの開発ブランチで、異なるフィールドを持つカスタムデータ型の特定のセットと多数のレコードを持っています。Aをベースにして新しいバージョンのBを作成すると、Bにも同じカスタムデータタイプ、フィールド、レコードがあります。
・AからBを作成した後、既存のデータ型のBに新しいレコードを追加すると、それらの新しいレコードはAにも表示されます。
・Aがフィールドのセットを持つカスタムデータ型「Employee」を持っているとします。AからBが作成されているので、Bにも「Employee」というデータ型があります。AのEmployeeに新しいフィールド「Birthday」(テキスト型)を追加しても、Bには自動的に表示されません。その後、BのEmployeeに新しいフィールド “Birthday” (タイプ・テキスト)を追加しても、Aから同じ “Birthday “フィールドを参照することはありません。
・Aで新しいカスタムデータ型 “Project “を追加しても、Bには自動的に表示されません。
しかし厄介ではありますが、Bにも新しいカスタムデータ型「プロジェクト」を作成した場合、Aと同じプロジェクトを参照することになります。
データベースのコピー・バックアップ
概要
Bubbleは、データの損失がないように、いくつかの冗長な方法でアプリケーションのデータをバックアップします。どの範囲までバックアップできるかは、プランによって異なります。データベースは、ユーザーがワークフローを通じて作成したすべての「もの」です。型とフィールドの概念を中心に構成されています。
アプリケーションデータベースでは2つのことができ、以前の時点に復元することも、バージョンをまたいでコピーすることもできます。
データベースの復元
例えば、ワークフローの設定が間違っていて、あるものを削除してしまった場合など、何か問題が発生した場合、データを以前の時点に戻すことができます。これは危険な操作であり、絶対に必要な場合にのみ行うべきです。データベースを今日から 1 週間前に戻すと、過去 1 週間にサービスにサインアップしたすべてのユーザーがアカウントを失い、ログインできなくなるためです。
データの復元は、Dataタブのアプリデータセクションで行います。
最初に復元したいバージョンを選択し、次に時間を選択して確認します。1種類のものだけを復元することもできますが、いくつかのものが関連している場合、データの不整合につながる可能性があるので、注意して行う必要があります。アプリのバージョン管理と同様に、期待した結果に至らなかったリストアを、前回のリストアの数秒前に再度戻すことで戻すことができます。
データベースが大きい場合、リストア操作の実行に数分かかることがあります。プロセスを開始するとプログレスバーが表示され、ポップアップを閉じてアプリの作業を続けることができます。プロセスをキックオフしたら、エディタをリフレッシュするか、エディタを閉じるのが安全です。
バージョン間のコピー
このオプションを使用すると、データベース全体をカバーしたり、1つのタイプのみをカバーしたり、または開発から本番までカバーしたり、その逆も可能です。このオプションは通常、アプリケーションをライブで起動し、最初に開発中のデータベースにデータを入力する場合(開発からライブへ)、またはライブデータを使用してアプリケーションの新しいバージョンをテストする場合(またはいくつかのデバッグを行う場合)に使用されます。
まとめ
今回は、Bubbleにおけるアプリの運用部分について解説していきました。慣れるまではやや複雑な仕組みかもしれませんが、バージョン管理やデータベースの復元等はアプリの運用には欠かせない項目なっているので、しっかり頭に入れていきましょう。
ここまでご覧頂き、ありがとうございました!!