2016-08-10 1 views

답변

3

개인 마이그레이션 작업의 진행 상황을 조사하는 "더 적절한"방법이 있는지 모르겠지만 migrate_ * 데이터베이스 테이블을 볼 수 있습니다. 특정 행이 실패한 이유는 알 수 없지만 적어도 조사해야하는 행을 정확히 식별 할 수는 있습니다.

관심있는 마이그레이션 작업과 일치하는 migrate_ * 테이블에서 destid1 값이 NULL 인 행을 찾으십시오.

4

위에서 설명한 것처럼 일단 행을 식별하면 가끔씩 찾기가 어려울 수 있습니다. 내 경우에는 이전에 가져온 엔티티에 대한 업데이트를 트리거하고 있었는데이 엔티티는 행 건너 뛰기 예외를 던졌습니다.

while($source->valid) 루프를 MigrateExecutable::import()으로보고 예외를 던질 수 있습니다. 109 번 라인 주위에 있습니다 (현재). 거기에는 행을 건너 뛰도록 예외를 잡는 try-catch가 있습니다.

디버거가 있으면 건너 뛴 ID에 대한 감시를 설정 한 다음 예외에서 트리거하는 줄과 파일을 가져옵니다. 그렇지 않으면 값 비싼 값을 얻지 만 sourceIdValues을 기반으로 if을 추가하고 $e->getLine()$e->getFile()을 인쇄하면 예외가 발생한 곳을 확인할 수 있습니다.

+0

내 경우에는 틀린 static_map 플러그인이었습니다. 네가 말한 while 루프는 MigrateExecutable.php의 198 번째 줄에있다. $ e-> getLine 및 $ e-> getFile과 함께 \ Drupal :: logger 호출을 사용하면 무슨 일이 일어나고 있는지 알 수있는 트릭을 만들었습니다. 많은 감사합니다! – Roger

관련 문제