Files
upstream-twenty/packages/twenty-docs/l/ko/user-guide/data-migration/how-tos/migrating-from-self-hosted-to-cloud.mdx
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 3s
snapshot of https://github.com/twentyhq/twenty.git (main, 2026-09-17; blobs > 131072B omitted)
2026-09-17 23:28:13 +05:00

174 lines
7.7 KiB
Plaintext

---
title: 자가 호스팅에서 클라우드로 마이그레이션
description: Twenty 자가 호스팅 인스턴스를 Twenty Cloud로 마이그레이션하는 단계별 가이드.
---
## 개요
이 가이드는 Twenty 자가 호스팅 인스턴스에서 Twenty Cloud로 데이터를 마이그레이션하는 과정을 안내합니다. 이 프로세스에는 클라우드 워크스페이스 설정, 데이터 내보내기, 그리고 다시 가져오기가 포함됩니다.
<Note>마이그레이션 후에는 뷰, 워크플로우, 역할을 수동으로 다시 만들어야 합니다. 이 구성 작업에 필요한 시간을 계획하세요.</Note>
## 1단계: 클라우드 워크스페이스 생성
1. [app.twenty.com](https://app.twenty.com)으로 이동하여 새 워크스페이스를 생성하세요
2. 초기 설정 마법사를 완료하세요
3. 새 워크스페이스 URL을 기록해 두세요
## 2단계: 데이터 모델 다시 생성
데이터를 가져오기 전에 사용자 지정 객체와 필드를 다시 만드세요:
1. 클라우드 인스턴스에서 **설정 → 데이터 모델**로 이동하세요
2. 자가 호스팅 설정과 일치하는 사용자 지정 객체를 생성하세요
3. 표준 객체와 사용자 지정 객체에 사용자 지정 필드를 추가하세요
4. 필드 설정(고유, 필수 등)을 구성하세요
<Note>참고용으로 자가 호스팅 데이터 모델의 스크린샷을 찍거나, 두 인스턴스를 나란히 열어 두세요.</Note>
## 3단계: 모든 사용자 초대
<Warning>
**중요: 데이터를 가져오기 전에 사용자를 초대하세요.**
사용자가 참조되는 레코드(예: Account Owner 필드)를 가져오기 전에 초대를 수락해야 합니다. 사용자가 아직 존재하지 않으면 해당 관계를 매핑할 수 없습니다.
</Warning>
1. 클라우드 인스턴스에서 **설정 → 멤버**로 이동하세요
2. 자가 호스팅에서 계정을 보유했던 모든 팀 멤버를 초대하세요
3. **모두가 초대를 수락할 때까지 기다리세요**
4. 모든 사용자가 멤버 목록에 표시되는지 확인하세요
## 4단계: 자가 호스팅에서 데이터 내보내기
자가 호스팅 인스턴스에서 각 객체를 내보내세요:
1. 각 객체(회사, 사람, 기회 등)로 이동하세요
2. 마이그레이션하려는 **모든 열**이 보이도록 뷰를 구성하세요
3. **⋮ → 뷰 내보내기**를 클릭하세요
4. 각 CSV 파일을 명확한 이름으로 저장하세요(예: `companies-export.csv`)
**다음 순서로 내보내세요**(가져올 때 참고용):
1. 회사
2. 사람들
3. 기회
4. 사용자 지정 객체(종속성을 따름)
5. 작업, 노트
## 5단계: 워크스페이스 멤버 참조 업데이트
내보낸 CSV에는 자가 호스팅 인스턴스의 사용자 ID가 포함되어 있습니다. 이 ID는 클라우드 인스턴스와 일치하지 않으므로 이메일로 대체해야 합니다.
**사용자 참조(Owner, Assignee 등)가 있는 각 CSV 파일의 경우:**
1. 스프레드시트 애플리케이션에서 CSV를 여세요
2. 각 사용자 ID 열 옆에 새 열을 추가하세요(예: `accountOwnerId` 옆에 `accountOwnerEmail`)
3. 각 사용자의 **이메일 주소**를 입력하세요
4. 이전 ID 열은 삭제하거나 그대로 둘 수 있습니다(가져오기 중에 건너뜁니다)
**예시:**
이전:
```csv
name,domain,accountOwnerId
Acme Corp,https://acme.com,old-uuid-123
```
이후:
```csv
name,domain,accountOwnerEmail
Acme Corp,https://acme.com,john@yourcompany.com
```
<Note>사용자가 클라우드 워크스페이스 초대를 수락할 때 사용한 것과 동일한 이메일 주소를 사용하세요.</Note>
## 6단계: 가져오기 순서 계획
관계를 유지하려면 올바른 순서로 파일을 가져오세요:
1. 먼저 **회사**(종속성 없음)
2. 그다음 **사람**(회사에 연결)
3. 세 번째로 **기회**(회사 및 사람에 연결)
4. **사용자 지정 객체**(종속성을 따름)
5. 마지막으로 **작업과 노트**(다른 레코드에 연결)
관계 유지에 대한 자세한 내용은 [관계 가져오기 방법](/l/ko/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)을 참조하세요.
## 7단계: 클라우드로 가져오기
각 CSV 파일에 대해 다음 순서로 진행하세요:
1. 클라우드 인스턴스에서 해당 객체로 이동하세요
2. **⋮ → 레코드 가져오기**를 클릭하세요
3. CSV 파일을 업로드하세요
4. 열을 필드에 매핑하세요:
* 사용자 이메일 열을 해당 관계 필드에 매핑하세요
* 다른 열도 일반적으로 매핑하세요
5. 오류가 있으면 검토하고 수정하세요
6. 가져오기를 확인하세요
7. 다음 파일로 진행하기 전에 몇 개의 레코드를 확인하세요
## 8단계: 구성 다시 생성
데이터를 가져온 후 다음을 수동으로 다시 만드세요:
### 보기
* 필터, 정렬, 열 구성과 함께 저장된 뷰를 다시 만드세요
* 칸반 또는 캘린더 뷰를 설정하세요
### 워크플로우
* **설정 → 워크플로우**에서 자동화를 다시 만드세요
* 사용하기 전에 각 워크플로우를 테스트하세요
### 역할 및 권한
* **설정 → 구성원 → 역할**에서 역할을 설정하세요
* 적절한 역할에 사용자를 할당하세요
### 통합
* 각 사용자의 이메일 및 캘린더 동기화를 다시 연결하세요
* 새 API 키로 모든 API 통합을 다시 구성하세요
## 마이그레이션 후 체크리스트
<Check>모든 데이터가 성공적으로 가져와졌음</Check>
<Check>객체 간 관계가 올바르게 동작함</Check>
<Check>사용자 할당(Owner, Assignee)이 올바르게 매핑됨</Check>
<Check>뷰 재생성 완료</Check>
<Check>워크플로우 재생성 및 테스트 완료</Check>
<Check>역할 및 권한 구성 완료</Check>
<Check>이메일/캘린더 동기화 재연결 완료</Check>
<Check>API 통합이 새 키로 업데이트됨</Check>
## FAQ
<AccordionGroup>
<Accordion title="워크플로우를 자동으로 마이그레이션할 수 있나요?">
현재는 불가능합니다. 워크플로우는 클라우드 인스턴스에서 수동으로 다시 만들어야 합니다.
</Accordion>
<Accordion title="파일 첨부 및 이미지는 어떻게 하나요?">
파일 첨부는 CSV 내보내기에 포함되지 않습니다. 첨부 파일은 수동으로 다시 업로드하거나 API를 통해 마이그레이션해야 하며, 대규모 마이그레이션의 경우 당사 팀에 연락하여 지원을 받으세요.
</Accordion>
<Accordion title="마이그레이션 중에 두 인스턴스를 모두 실행 상태로 유지할 수 있나요?">
예. 클라우드 마이그레이션이 완료되었음을 확인할 때까지 자가 호스팅 인스턴스를 실행 상태로 유지하는 것을 권장합니다. 단, 두 곳 모두에서 새 데이터를 생성하지 않도록 주의하세요.
</Accordion>
<Accordion title="사용자가 아직 초대를 수락하지 않았다면 어떻게 하나요?">
해당 사용자를 참조하는 레코드는 가져오기에 실패하거나 관계가 비어 있게 됩니다. 데이터를 가져오기 전에 모든 사용자가 초대를 수락했는지 확인하세요.
</Accordion>
</AccordionGroup>
## 도움이 필요하신가요?
<Tip>
대규모 또는 복잡한 워크스페이스를 마이그레이션하고 있나요? 전체 마이그레이션을 처리할 [공인 Twenty 파트너](https://twenty.com/partners/list?categories=HOSTING\&ref=docs-migrate-cloud)를 찾아보세요. *(또는 저희 팀을 참조에 추가하세요: [contact@twenty.com](mailto:contact@twenty.com).)*
</Tip>