Form.IO开源版能否通过resquel将表单响应直接映射至PostgreSQL无需MongoDB
结论先行
你完全可以绕开MongoDB,通过Resquel直接将Form.IO的表单响应写入你的现有PostgreSQL数据库,不需要经过Form.IO自带的Mongo存储环节。
Resquel的两种工作模式说明
Resquel本身支持两种运行逻辑,你可以按需选择:
- 同步模式(非必须):即你提到的,将已经存储在MongoDB中的表单响应数据同步到SQL数据库,仅适用于需要同时保留Mongo和SQL双存储的场景
- 直写模式:完全跳过MongoDB存储层,表单提交的响应数据会先按照你配置的字段映射规则做转换,直接写入指定的PostgreSQL表,完全符合你的使用需求
部署配置要点
你需要在AWS部署时调整以下配置,即可完全禁用MongoDB依赖:
- 部署Form.IO服务时,修改环境变量配置,开启SQL直写模式:
FORMIO_SQL_ENABLED=true FORMIO_SQL_URI=postgresql://<PG用户名>:<PG密码>@<PG实例地址>:<端口>/<数据库名> - 在Form.IO的表单管理后台,为每个表单的字段配置和PostgreSQL表字段的映射关系,支持自动类型转换、关联表映射、自定义取值逻辑
- 你可以完全不部署MongoDB服务,整个运行栈仅保留Form.IO服务、Resquel组件、现有PostgreSQL实例即可
额外提示
如果需要在写入PostgreSQL前做自定义数据校验、字段加工,可以直接在Form.IO的表单提交钩子中编写自定义JS逻辑,处理完成后再触发SQL写入操作,不需要修改底层代码。
内容的提问来源于stack exchange,提问作者Einarr
相关产品推荐
相关产品推荐

