CSV에서 Drupal 8로 다국어 콘텐츠 마이그레이션

게시 됨: 2021-07-13

모든 소스에서 Drupal 8로 데이터를 마이그레이션하는 것은 이제 쉬운 데이터 전송을 허용하는 다양한 모듈로 간단해집니다. Drupal의 마이그레이션은 외부 소스에서 현재 Drupal 사이트로 데이터를 이동하는 모든 프로세스에 대한 용어입니다. 노드, 사용자, 구성 및 사이트의 기타 구성 요소를 포함하는 데이터를 마이그레이션할 수 있습니다.

Drupal은 콘텐츠를 마이그레이션하는 다양한 방법을 제공합니다. 웹 사이트와 데이터 소스에 따라 가장 좋은 방법을 선택할 수 있습니다. 그러나 다국어 데이터를 마이그레이션하면 마이그레이션 프로세스에 몇 가지 단계가 더 추가될 수 있습니다. 먼저 기본 콘텐츠를 마이그레이션한 다음 번역을 마이그레이션해야 합니다. 이 기사에서는 다국어 콘텐츠를 CSV에서 Drupal 8로 마이그레이션하는 방법을 더 잘 이해할 수 있도록 이러한 단계에 대해 자세히 설명합니다.

CSV 가져오기

필요한 Drupal 8 마이그레이션 모듈

앞서 언급했듯이 Drupal은 쉽고 번거롭지 않은 마이그레이션에 도움이 될 수 있는 수많은 옵션과 모듈을 제공합니다. 다국어 콘텐츠를 마이그레이션하려면 다음이 필요합니다.

  1. 마이그레이션: 콘텐츠를 다른 소스에서 Drupal로 마이그레이션하기 위한 유연한 프레임워크를 제공합니다.
  2. Migrate plus: 소스 플러그인, 프로세스 플러그인, 대상 플러그인 및 API 확장과 같은 마이그레이션을 위한 플러그인을 제공합니다.
  3. Drupal 마이그레이션: 콘텐츠 및 구성 마이그레이션을 지원합니다.
  4. 소스 CSV 마이그레이션: CSV 파일에서 Drupal로 콘텐츠를 가져오는 플러그인을 제공합니다.
  5. 도구 마이그레이션: 이 모듈은 마이그레이션에 사용되는 UI 도구와 Drush 명령을 제공합니다.
  6. 구성 개발 모듈: 이 모듈은 스크립트를 구성으로 변환합니다.

1단계: 기본 콘텐츠 마이그레이션

기본 콘텐츠 마이그레이션을 시작하려면 먼저 Drupal 8에서 사용자 지정 모듈을 만들어야 합니다.

사용자 정의 모듈 만들기

info.yml 에 이러한 키와 값이 있는지 확인하십시오.

마이그레이션 스크립트라고 하는 yaml 파일을 생성하고 생성된 사용자 정의 모듈의 config/install 디렉토리에 저장해야 합니다. info.ymlconfig_devel/install 키에는 모든 yaml 파일이 작성되어 있어야 합니다.

Yaml 파일

분류 용어를 가져오기 위한 샘플 yaml 파일입니다. 마이그레이션 스크립트에는 4개의 섹션이 있습니다.

  1. 메타데이터: ID, 레이블 및 마이그레이션 그룹 ID가 있습니다.
  2. 소스: 소스 키에는 CSV 파일의 경로가 있어야 합니다.
  3. 프로세스: 필드와 CSV 열 간의 매핑.
  4. 대상: 가져온 데이터가 저장되는 대상입니다.

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 웹사이트에 언어 추가하기

번역을 가져오려면 먼저 웹사이트를 다국어로 만들어야 합니다. 사이트에 언어를 다운로드하는 방법을 알아보겠습니다.

  1. 언어콘텐츠 번역 모듈을 활성화합니다. 핵심 모듈입니다.
  2. /admin/config/regional 및 언어/언어/언어 추가로 이동합니다.언어 추가
  3. 드롭다운을 클릭하면 언어 목록이 표시됩니다. 사이트에서 원하는 언어를 선택하고 언어 추가를 클릭 합니다 . 그러면 사이트의 언어가 다운로드됩니다.

2. 엔터티에 대한 번역 활성화

필요한 언어를 설치했으면 콘텐츠에 번역을 가져오거나 추가하기 전에 엔터티에 대한 번역을 활성화해야 합니다. 이를 위해 admin/config/regional/content 번역으로 이동 합니다. 번역을 활성화할 엔터티를 선택하고 구성 저장 을 클릭 합니다 .

이 예에서는 블로그 콘텐츠 유형을 가져오므로 블로그 콘텐츠 유형에 대한 번역을 활성화하겠습니다.

언어

3. 마이그레이션 파일 업데이트

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

조수

플러그인마이그레이션으로, 소스id 로 사용하여 스크립트의 프로세스 섹션에 새 키 tid 를 추가하고 마이그레이션 값은 기본 콘텐츠 마이그레이션 스크립트의 마이그레이션 ID 여야 합니다.

노드 마이그레이션의 경우 프로세스 섹션에 새 키 nid 를 추가하십시오. 여기서 마이그레이션 키는 기본 콘텐츠 마이그레이션 스크립트의 마이그레이션 ID 값을 갖습니다.

소스 ID

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

목적지

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

언어 코드

이러한 변경 사항은 스크립트에 이러한 콘텐츠가 새 노드가 아닌 번역으로 처리되는 기본 콘텐츠 마이그레이션에서 콘텐츠의 ID를 가져오도록 지시합니다.

기억할 점

  • 가져오기 프로세스가 순서대로 진행되어야 합니다. 예를 들어, 용어가 노드에서 참조되는 경우 해당 용어를 노드 내용보다 먼저 가져와야 합니다.
  • 번역을 가져오기 전에 엔터티에 대한 번역을 활성화합니다.
  • CSV 파일의 번역 내용 순서는 기본 내용과 동일해야 합니다. 즉, 기본 콘텐츠와 해당 번역은 CSV 파일에서 같은 줄에 있어야 합니다.
  • 기본 콘텐츠를 먼저 가져온 다음 번역 콘텐츠를 가져옵니다. 그렇지 않으면 둘 다 개별 콘텐츠로 처리됩니다.