diff --git a/kong/db/declarative/import.lua b/kong/db/declarative/import.lua index f7536389cdbf..c083fd86d846 100644 --- a/kong/db/declarative/import.lua +++ b/kong/db/declarative/import.lua @@ -326,7 +326,8 @@ local function _set_entity_for_txn(t, entity_name, item, options, is_delete) local is_foreign = fdata.type == "foreign" local fdata_reference = fdata.reference local value = item[fname] - local fws_id = fdata.unique_across_ws and kong.default_workspace or ws_id + -- avoid overriding the outer ws_id + local field_ws_id = fdata.unique_across_ws and kong.default_workspace or ws_id -- value may be null, we should skip it if not value or value == null then @@ -346,7 +347,7 @@ local function _set_entity_for_txn(t, entity_name, item, options, is_delete) value_str = pk_string(kong.db[fdata_reference].schema, value) end - for _, wid in ipairs {fws_id, GLOBAL_WORKSPACE_TAG} do + for _, wid in ipairs {field_ws_id, GLOBAL_WORKSPACE_TAG} do local key = unique_field_key(entity_name, wid, fname, value_str or value) -- store item_key or nil into lmdb @@ -360,7 +361,7 @@ local function _set_entity_for_txn(t, entity_name, item, options, is_delete) value_str = pk_string(kong.db[fdata_reference].schema, value) - for _, wid in ipairs {fws_id, GLOBAL_WORKSPACE_TAG} do + for _, wid in ipairs {field_ws_id, GLOBAL_WORKSPACE_TAG} do local key = foreign_field_key(entity_name, wid, fname, value_str, pk) -- store item_key or nil into lmdb