.csv 上传用于批量用户自定义字段更改

如果能够提供上传 .csv 文件的功能(类似于批量邀请),其中包含以下内容,将非常有帮助:

  1. 用户名
  2. 自定义字段名称
  3. 自定义字段值

然后,这些数据将直接应用于用户的帐户。当然,前提是用户名和自定义字段名称必须有效!

这将极大地有助于数据清理和迁移工作,而这些工作在处理用户自定义字段时似乎非常棘手。

1 个赞

如果它是用于导入,那么在导入器中很容易完成。

您也可以使用 API。

很难想象有比这更容易的 CSV 上传解决方案。

2 个赞

嗯,我的用例是恢复一些用户自定义字段,这些字段我无意中为许多用户删除了(请参阅 https://meta.discourse.org/t/problem-with-manipulating-custom-user-fields-from-the-rails-console/218613)。我有一个暂存站点的备份,并且也有 CSV 文件。

你说“容易”,我猜你的意思是你需要几个小时来编写一个可以完成这项工作的脚本。你能给我一个成本估算吗?

1 个赞

请发送一封包含详细信息的电子邮件给我。

Jay 已交付了相关内容:

你需要具备一定的 Linux / Bash 能力才能使用它,我强烈建议你先进行备份,并在不忙的时候操作,因为如果不小心,你可能会严重损坏用户数据。我在生产环境中使用它之前,在暂存服务器上试用过它。

你可能会发现这个 Data Explorer 查询对获取你目标 user_field 的现有数据很有用:

--[params]
-- string :ucf_name = user_field_1

SELECT
    user_id, value as ":ucf_name"
    
FROM user_custom_fields

WHERE name = :ucf_name
ORDER BY user_id asc

请注意,你需要从 .csv 文件中的字段名两侧删除 ',因为我无法弄清楚如何阻止查询包含它们。

4 个赞

感谢您创建此脚本:

如果可以在创建用户字段时添加上传选项,或者在创建标签组时添加上传选项,那就太好了。

您能否上传一张图片,显示 Excel 中的数据格式应如何?

谢谢!

1 个赞
列 1 列 2 列 3
user_id user_field_1 user_field_3
4 value hello
3 another value world
6 still another banana
2 个赞

谢谢!

2 个赞