【发布时间】:2013-01-22 01:54:15
【问题描述】:
我正在构建一个可以在两种模式下运行的应用程序。沙盒模式和生产模式。
在沙盒模式下,我想在我的 gen_server 中针对数据库进行许多检查:如果表不存在,则创建它;如果列不存在,则添加它;如果列类型不允许我要存储的值然后更改它,等等。
在生产模式下,如果表不存在或列与值的类型不匹配,则会失败,没关系。
所以,为了避免像“case State#state.is_sandbox of true -> ...”这样的繁琐代码, 我想为我的 gen_server 设置两个不同的模块,并且我想在 handle_call 或 handle_info 中更改当前模块。
实际上,我只是想从沙盒转到生产,但我认为如果它以这种方式工作,它可以向后工作。
谢谢。
【问题讨论】:
标签: erlang erlang-otp gen-server dev-to-production