Просмотр исходного кода

fix(bridge): ensure the username of pgsql must exists

firest 2 лет назад
Родитель
Сommit
8cee75139d
1 измененных файлов с 17 добавлено и 1 удалено
  1. 17 1
      apps/emqx_connector/src/emqx_connector_pgsql.erl

+ 17 - 1
apps/emqx_connector/src/emqx_connector_pgsql.erl

@@ -69,7 +69,7 @@ roots() ->
 
 fields(config) ->
     [{server, server()}] ++
-        emqx_connector_schema_lib:relational_db_fields() ++
+        adjust_fields(emqx_connector_schema_lib:relational_db_fields()) ++
         emqx_connector_schema_lib:ssl_fields() ++
         emqx_connector_schema_lib:prepare_statement_fields().
 
@@ -77,6 +77,22 @@ server() ->
     Meta = #{desc => ?DESC("server")},
     emqx_schema:servers_sc(Meta, ?PGSQL_HOST_OPTIONS).
 
+adjust_fields(Fields) ->
+    lists:map(
+        fun
+            ({username, OrigUsernameFn}) ->
+                {username, fun
+                    (required) ->
+                        true;
+                    (Any) ->
+                        OrigUsernameFn(Any)
+                end};
+            (Field) ->
+                Field
+        end,
+        Fields
+    ).
+
 %% ===================================================================
 callback_mode() -> always_sync.