Files
upstream-mirror e7da97194a
Some checks failed
App Prod-Parity E2E Dispatch / dispatch (push) Failing after 10s
CD Storybook UI / build (push) Failing after 3m25s
CD Storybook UI / dispatch (push) Has been skipped
CD deploy main / website-changed-files (push) Successful in 18m8s
CI Agent Skills / changed-files-check (push) Successful in 18m9s
CI Create App E2E minimal / changed-files-check (push) Successful in 24s
CI Create App / changed-files-check (push) Successful in 26s
CI Docs / changed-files-check (push) Successful in 26s
CI Emails / changed-files-check (push) Successful in 28s
CI Example App Hello World / changed-files-check (push) Successful in 23s
CI Front / changed-files-check (push) Has been skipped
CI Example App Postcard / changed-files-check (push) Successful in 27s
CI UI / changed-files-check (push) Has been skipped
CI Utils Test / changed-files-check (push) Successful in 45s
CI Twenty Apps / discover (push) Successful in 1m3s
CD deploy main / deploy-main (push) Failing after 3s
CI Agent Skills / agent-skills-validate (push) Has been skipped
CI Create App / create-app-test (lint) (push) Has been skipped
CI Emails / emails-test (push) Has been skipped
CI Front / front-task (lingui:compile) (push) Has been skipped
CI Front / front-task (lint) (push) Has been skipped
CI Example App Postcard / example-app-postcard (push) Has been skipped
CI UI / ui-task (lint) (push) Has been skipped
CI UI / ui-task (pack-size) (push) Has been skipped
CI UI / ui-task (size) (push) Has been skipped
CI UI / ui-task (test) (push) Has been skipped
CI UI / ui-task (typecheck) (push) Has been skipped
CI Utils Test / utils-test (push) Has been skipped
CI Twenty Apps / ${{ matrix.app.name }} (push) Has been skipped
CI Emails / ci-emails-status-check (push) Successful in 2s
CI Example App Hello World / ci-example-app-hello-world-status-check (push) Successful in 2s
CI Example App Postcard / ci-example-app-postcard-status-check (push) Successful in 3s
CI UI / ui-sb-test (push) Has been skipped
CI Utils Test / ci-utils-test-status-check (push) Successful in 2s
CI Twenty Apps / ci-twenty-apps-status-check (push) Successful in 2s
CI UI / ci-ui-status-check (push) Successful in 2s
CI Desktop / desktop (push) Failing after 1m8s
Push docs to Crowdin / Push documentation to Crowdin (push) Failing after 55s
Push translations to Crowdin / Extract and upload translations (push) Failing after 5s
Push website translations to Crowdin / Extract and upload website translations (push) Failing after 5s
CI Create App / create-app-test (test) (push) Has been skipped
CI Create App / create-app-test (typecheck) (push) Has been skipped
CI Docs / docs-lint (push) Has been skipped
CI Example App Hello World / example-app-hello-world (push) Has been skipped
CI Front / front-task (lingui:extract) (push) Has been skipped
CI Front / front-task (test) (push) Has been skipped
CI Front / front-task (typecheck) (push) Has been skipped
CI UI / ui-sb-build (push) Failing after 1m32s
CI Twenty Apps / ${{ matrix.app.name }} (${{ matrix.server-source }}) (push) Has been skipped
CI Agent Skills / agent-skills-publish (push) Has been skipped
CI Create App / ci-create-app-status-check (push) Successful in 2s
CI Agent Skills / agent-skills-remote-source (push) Has been skipped
CI Create App E2E minimal / create-app-e2e-minimal (push) Has been cancelled
CI E2E Main / e2e-test (push) Has been cancelled
CI Front / front-sb-build (push) Has been cancelled
CI Front / front-build (push) Has been cancelled
CI Create App E2E minimal / ci-create-app-e2e-minimal-status-check (push) Has been cancelled
CI E2E Main / ci-e2e-main-status-check (push) Has been cancelled
CI E2E Main / notify-main-ci-failure (push) Has been cancelled
CI E2E Main / qa-scout-comment (push) Has been cancelled
CI Front / front-sb-test (push) Has been cancelled
CI Front / front-sb-screenshots (push) Has been cancelled
CI Front / ci-front-status-check (push) Has been cancelled
DPA Sub-Processor Sync / sync-subprocessors (push) Failing after 3s
AI Catalog Sync / sync-catalog (push) Failing after 2s
snapshot of https://github.com/twentyhq/twenty.git (main, 2026-09-17; blobs > 131072B omitted)
2026-09-17 23:28:13 +05:00

84 lines
3.6 KiB
Plaintext

---
title: 数据迁移
description: 通过 CSV 文件或 API 导入和导出您的 CRM 数据。
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## 导入方法
Twenty 支持两种主要的数据导入方法:
| 方法 | 最佳适用 | 数量上限 |
| ---------- | --------- | --------------- |
| **CSV 导入** | 标准迁移,定期更新 | 每个文件 10,000 条记录 |
| **API 导入** | 大规模迁移,自动化 | 无限制 |
<Note>对于非常大的数据集(数十万条记录),请使用 API。 我们的[实施合作伙伴](/l/zh/user-guide/getting-started/capabilities/implementation-services)如有需要,可帮助运行这些脚本。</Note>
## CSV 导入基础知识
您可以使用 CSV、XLSX 或 XLS 文件导入任何对象的数据。 每个文件应**仅包含一种对象类型**(例如,仅包含“人员”记录)。
<Note>**字段必须在导入前已存在。** 上传 CSV 会创建记录,但不会创建字段。 如果您需要自定义字段,请先在**设置 → 数据模型**中创建它们。</Note>
### 步骤
1. 导航到您要导入数据的对象
2. 点击右上角的 **⋮** 图标(命令菜单),然后点击 **导入记录**
3. 下载模板文件以确保您的数据符合预期格式
4. 上传已按格式整理的 CSV 文件
5. 将您的列映射到 Twenty 字段
6. 检查错误(以黄色高亮),并在 UI 中直接编辑进行修复
7. 确认导入
### 导入对象之间的关系
您可以使用 CSV 导入功能来导入对象之间的关系。 您需要使用此对象中的唯一字段来引用相关对象:`id`;对于人员和工作区成员,使用 `email`;对于公司,使用 `domain`;对于其他对象,则使用数据模型中设置为唯一的任何字段。
<Note>**已删除的记录也计入唯一性。** 软删除的记录(在“命令菜单 → 查看已删除记录”下可见)会包含在唯一性检查中。 如果您导入的记录与某个已删除记录具有相同的唯一值,该已删除记录将被还原。</Note>
<Warning>
**导入顺序很重要!**
在导入相关对象时,请按以下顺序上传文件:
1. 首先导入**公司**(关系中的“一”端)
2. **人员** 第二(通过 companyId 关联到公司)
3. **商机** 第三(关联到公司/人员)
4. 最后导入有关系的**自定义对象**
为什么? 在一对多关系中,“一”端必须先存在,才能被引用。 例如,在导入带有该公司 ID 的人员之前,必须先存在该公司的记录。
</Warning>
有关操作的分步指南,请参阅[这篇文章](/l/zh/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)。
## 导出数据
导出您的工作区数据,用于备份、报告或迁移。
### 步骤
1. 导航到您要导出的对象
2. 在视图中配置所需的列
3. 点击 **⋮** → **导出视图**
4. 保存该 CSV 文件
<Note>**仅导出可见列。** CSV 文件只包含当前视图中显示的列。 导出前添加或隐藏列以控制包含的数据。</Note>
<Note>**导出限制**:每次导出最多 20,000 条记录。</Note>
## 权限
数据导入和导出需要特定权限:
* **导入**:需要“导入 CSV”权限
* **导出**:需要“导出 CSV”权限
如果您没有这些权限,请联系您的工作区管理员。
## 下一步
* [准备您的 CSV 文件](/l/zh/user-guide/data-migration/how-tos/prepare-your-csv-files)
* [通过 CSV 导入对象之间的关系](/l/zh/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
* [通过 API 导入大型数据集](/l/zh/user-guide/data-migration/how-tos/import-data-via-api)