2 つのモードで実行できるアプリを構築しています。サンドボックス モードと本番モード。
サンドボックス モードでは、gen_server でデータベースに対して多くのチェックを行いたいと考えています。テーブルが存在しない場合は作成します。列が存在しない場合は追加します。列のタイプで保存したい値が許可されていない場合は、変更します。
本番モードでは、テーブルが存在しない場合、または列が値の型と一致しない場合は失敗しますが、それで問題ありません。
したがって、「case State#state.is_sandbox of true -> ...」のような面倒なコードを避けるために、gen_server に 2 つの異なるモジュールを用意し、現在のモジュールを handle_call またはハンドル情報。
本当は、サンドボックスから本番環境に移行したいだけなのですが、この方法でうまくいけば逆にうまくいくのではないかと思います。
ありがとう。