CSV에서 Drupal 8로 다국어 콘텐츠 마이그레이션
게시 됨: 2021-07-13모든 소스에서 Drupal 8로 데이터를 마이그레이션하는 것은 이제 쉬운 데이터 전송을 허용하는 다양한 모듈로 간단해집니다. Drupal의 마이그레이션은 외부 소스에서 현재 Drupal 사이트로 데이터를 이동하는 모든 프로세스에 대한 용어입니다. 노드, 사용자, 구성 및 사이트의 기타 구성 요소를 포함하는 데이터를 마이그레이션할 수 있습니다.
Drupal은 콘텐츠를 마이그레이션하는 다양한 방법을 제공합니다. 웹 사이트와 데이터 소스에 따라 가장 좋은 방법을 선택할 수 있습니다. 그러나 다국어 데이터를 마이그레이션하면 마이그레이션 프로세스에 몇 가지 단계가 더 추가될 수 있습니다. 먼저 기본 콘텐츠를 마이그레이션한 다음 번역을 마이그레이션해야 합니다. 이 기사에서는 다국어 콘텐츠를 CSV에서 Drupal 8로 마이그레이션하는 방법을 더 잘 이해할 수 있도록 이러한 단계에 대해 자세히 설명합니다.

필요한 Drupal 8 마이그레이션 모듈
앞서 언급했듯이 Drupal은 쉽고 번거롭지 않은 마이그레이션에 도움이 될 수 있는 수많은 옵션과 모듈을 제공합니다. 다국어 콘텐츠를 마이그레이션하려면 다음이 필요합니다.
- 마이그레이션: 콘텐츠를 다른 소스에서 Drupal로 마이그레이션하기 위한 유연한 프레임워크를 제공합니다.
- Migrate plus: 소스 플러그인, 프로세스 플러그인, 대상 플러그인 및 API 확장과 같은 마이그레이션을 위한 플러그인을 제공합니다.
- Drupal 마이그레이션: 콘텐츠 및 구성 마이그레이션을 지원합니다.
- 소스 CSV 마이그레이션: CSV 파일에서 Drupal로 콘텐츠를 가져오는 플러그인을 제공합니다.
- 도구 마이그레이션: 이 모듈은 마이그레이션에 사용되는 UI 도구와 Drush 명령을 제공합니다.
- 구성 개발 모듈: 이 모듈은 스크립트를 구성으로 변환합니다.
1단계: 기본 콘텐츠 마이그레이션
기본 콘텐츠 마이그레이션을 시작하려면 먼저 Drupal 8에서 사용자 지정 모듈을 만들어야 합니다.

info.yml 에 이러한 키와 값이 있는지 확인하십시오.
마이그레이션 스크립트라고 하는 yaml 파일을 생성하고 생성된 사용자 정의 모듈의 config/install 디렉토리에 저장해야 합니다. info.yml 의 config_devel/install 키에는 모든 yaml 파일이 작성되어 있어야 합니다.

분류 용어를 가져오기 위한 샘플 yaml 파일입니다. 마이그레이션 스크립트에는 4개의 섹션이 있습니다.
- 메타데이터: ID, 레이블 및 마이그레이션 그룹 ID가 있습니다.
- 소스: 소스 키에는 CSV 파일의 경로가 있어야 합니다.
- 프로세스: 필드와 CSV 열 간의 매핑.
- 대상: 가져온 데이터가 저장되는 대상입니다.
yaml 파일 노드 내용도 비슷하게 작성해야 합니다. 유일한 차이점은 목적지입니다.

대상 플러그인은 entity:node 여야 하며 default_bundle 에는 콘텐츠를 가져올 콘텐츠 유형의 시스템 이름이 있습니다.
모든 yaml 파일을 생성한 후에는 yaml의 ID가 info.yml에 포함되어야 합니다. 모든 작업이 완료되면 사용자 지정 모듈을 활성화합니다.
Drush 명령 drush cdi <migration id> 를 사용하십시오 . 여기서 마이그레이션 ID는 techx 마이그레이션 입니다. 그러면 스크립트가 구성으로 변환됩니다.
명령을 실행한 후 admin>structure>migration 으로 이동 합니다. 마이그레이션 목록을 클릭하면 생성한 마이그레이션 그룹을 찾을 수 있습니다. 그러면 생성된 마이그레이션 스크립트 목록이 표시됩니다.

실행 탭을 클릭하면 사용 가능한 작업 목록이 표시됩니다.


가져오기 는 소스에서 데이터를 가져 오는 것입니다.
롤백 하면 가져온 데이터가 삭제됩니다.
중지 는 가져오기 또는 롤백 프로세스를 중단하는 것입니다.
때때로 프로세스가 중단됩니다. 상태를 유휴 상태로 이동하려면 재설정 을 사용합니다.
사용자, 단락과 같은 다른 엔터티의 데이터를 마이그레이션하는 방법에 대한 자세한 정보는 CSV Import to Migrate Drupal 7 to 8 - A complete guide를 확인하십시오.
2단계: 기본 콘텐츠 번역 마이그레이션
Drupal 8 웹사이트에서 이미 다국어 콘텐츠를 활성화했다면 첫 번째 단계를 건너뛸 수 있습니다. 다국어 Drupal 8 웹사이트를 만드는 방법과 웹사이트가 필요한 이유를 알고 싶다면 이 기사를 확인하세요.
1. Drupal 웹사이트에 언어 추가하기
번역을 가져오려면 먼저 웹사이트를 다국어로 만들어야 합니다. 사이트에 언어를 다운로드하는 방법을 알아보겠습니다.
- 언어 및 콘텐츠 번역 모듈을 활성화합니다. 핵심 모듈입니다.
- /admin/config/regional 및 언어/언어/언어 추가로 이동합니다.

- 드롭다운을 클릭하면 언어 목록이 표시됩니다. 사이트에서 원하는 언어를 선택하고 언어 추가를 클릭 합니다 . 그러면 사이트의 언어가 다운로드됩니다.
2. 엔터티에 대한 번역 활성화
필요한 언어를 설치했으면 콘텐츠에 번역을 가져오거나 추가하기 전에 엔터티에 대한 번역을 활성화해야 합니다. 이를 위해 admin/config/regional/content 번역으로 이동 합니다. 번역을 활성화할 엔터티를 선택하고 구성 저장 을 클릭 합니다 .
이 예에서는 블로그 콘텐츠 유형을 가져오므로 블로그 콘텐츠 유형에 대한 번역을 활성화하겠습니다.

3. 마이그레이션 파일 업데이트
번역을 가져오려면 yaml 파일에 몇 가지 변경 사항을 적용해야 합니다. 번역된 내용의 CSV 파일의 경로를 기본 내용으로 지정하고 번역된 내용은 다른 파일에 저장됩니다. 용어 번역의 변경 사항.

플러그인 을 마이그레이션으로, 소스 를 id 로 사용하여 스크립트의 프로세스 섹션에 새 키 tid 를 추가하고 마이그레이션 값은 기본 콘텐츠 마이그레이션 스크립트의 마이그레이션 ID 여야 합니다.
노드 마이그레이션의 경우 프로세스 섹션에 새 키 nid 를 추가하십시오. 여기서 마이그레이션 키는 기본 콘텐츠 마이그레이션 스크립트의 마이그레이션 ID 값을 갖습니다.

또 다른 키를 추가해야 하는 것은 값이 true 로 설정된 번역 입니다. 엔티티에 관계없이 모든 번역 마이그레이션 스크립트의 대상 섹션에 추가해야 합니다.

langcode 키를 사용하여 번역을 가져올 언어를 정의하십시오. 이 예에서는 일본어 번역을 가져 오므로 값은 ja 가 됩니다.

이러한 변경 사항은 스크립트에 이러한 콘텐츠가 새 노드가 아닌 번역으로 처리되는 기본 콘텐츠 마이그레이션에서 콘텐츠의 ID를 가져오도록 지시합니다.
기억할 점
- 가져오기 프로세스가 순서대로 진행되어야 합니다. 예를 들어, 용어가 노드에서 참조되는 경우 해당 용어를 노드 내용보다 먼저 가져와야 합니다.
- 번역을 가져오기 전에 엔터티에 대한 번역을 활성화합니다.
- CSV 파일의 번역 내용 순서는 기본 내용과 동일해야 합니다. 즉, 기본 콘텐츠와 해당 번역은 CSV 파일에서 같은 줄에 있어야 합니다.
- 기본 콘텐츠를 먼저 가져온 다음 번역 콘텐츠를 가져옵니다. 그렇지 않으면 둘 다 개별 콘텐츠로 처리됩니다.
