# 建议：在前端启用导入功能

**URL:** <https://meta.discourse.org/t/suggestion-make-import-available-in-the-frontend/135845>\
**Category:** Feature\
**Created:** [2019年十二月13日 09:05 UTC](https://meta.discourse.org/t/suggestion-make-import-available-in-the-frontend/135845 "2019-12-13T09:05:41Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![paultaylor](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/paultaylor/32/166024_2.png) [@paultaylor](https://meta.discourse.org/u/paultaylor)\
**Post date:** [2019年十二月13日 09:05 UTC](https://meta.discourse.org/t/suggestion-make-import-available-in-the-frontend/135845/1 "2019-12-13T09:05:41Z")

</div>

导入说明非常晦涩难懂，再加上 Discourse 运行在 Docker 中，这又带来了额外的复杂性，影响了导入工作的执行方式。

既然似乎有很大比例的 Discourse 安装涉及用户从其他论坛软件迁移数据，为什么不在 Discourse 本身添加导入功能呢？

---

<div class="post-metadata">

**Author:** ![Remah](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/remah/32/70590_2.png) [@Remah](https://meta.discourse.org/u/Remah)\
**Post date:** [2019年十二月13日 11:15 UTC](https://meta.discourse.org/t/suggestion-make-import-available-in-the-frontend/135845/2 "2019-12-13T11:15:57Z")

</div>

我认为你的假设是错误的。大多数 Discourse 安装并不涉及从现有论坛导入数据。

此外，还有一个问题：要导入的是哪个论坛？

再者，一个正在运营的论坛在启动后为什么还需要导入功能？

---

<div class="post-metadata">

**Author:** ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)\
**Post date:** [2019年十二月13日 12:17 UTC](https://meta.discourse.org/t/suggestion-make-import-available-in-the-frontend/135845/3 "2019-12-13T12:17:09Z")

</div>

导入操作通常需要自定义导入脚本。这始终是一项需要一定专业知识才能完成的任务。将其放入用户界面（UX）中实际上会使操作变得更加困难，因为你需要为各种微小的定制问题添加相应的用户界面元素。

---

<div class="post-metadata">

**Author:** ![paultaylor](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/paultaylor/32/166024_2.png) [@paultaylor](https://meta.discourse.org/u/paultaylor)\
**Post date:** [2019年十二月13日 12:18 UTC](https://meta.discourse.org/t/suggestion-make-import-available-in-the-frontend/135845/4 "2019-12-13T12:18:08Z")

</div>

好的，反正我下周也得回来处理这个，因为我现在有一些更高优先级的任务需要解决。

---

<div class="post-metadata">

**Author:** ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)\
**Post date:** [2019年十二月13日 18:13 UTC](https://meta.discourse.org/t/suggestion-make-import-available-in-the-frontend/135845/5 "2019-12-13T18:13:05Z")

</div>

这是一个好主意，只是从技术角度来看，做起来极其困难。

---

<div class="post-metadata">

**Author:** ![paultaylor](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/paultaylor/32/166024_2.png) [@paultaylor](https://meta.discourse.org/u/paultaylor)\
**Post date:** [2019年十二月13日 20:34 UTC](https://meta.discourse.org/t/suggestion-make-import-available-in-the-frontend/135845/6 "2019-12-13T20:34:21Z")

</div>

如果你试图支持从不同的导入工具导入，那会非常困难。但我并不是建议这样做，我的意思是只需提供从 CSV 文件导入用户、从 CSV 选项导入分类等基础功能。这样，Discourse 只需要提供一种导入用户的方式，剩下的工作就由客户自行将用户列表从任何来源整理为 Discourse 规定的 CSV 格式。

顺便说一句，感谢 StackOverflow，多年来它真的帮了我大忙。

---

<div class="post-metadata">

**Author:** ![maiki](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/maiki/32/233950_2.png) [@maiki](https://meta.discourse.org/u/maiki)\
**Post date:** [2019年十二月13日 22:38 UTC](https://meta.discourse.org/t/suggestion-make-import-available-in-the-frontend/135845/7 "2019-12-13T22:38:17Z")

</div>

> [@paultaylor](#):
>
> 我建议只需提供从 CSV 文件导入用户、从 CSV 导入分类等基础选项。这样，Discourse 只需提供一种导入用户的方式，剩下的则由客户自行将用户列表从任意源整理为 Discourse 规定的 CSV 格式。

Discourse 确实提供了标准化的 JSON 导出/导入功能。你可以将现有内容转换为该格式，然后进行导入。我曾通过 API 为一些一次性任务进行过此类操作，用于测试，但它是有效的。
