업데이트 함수 ( MYMODULE_update_7101
)로 만든 테이블이 있지만 캐시에서 거의 모든 drush 호출의 코드 어딘가에서 해당 테이블에 액세스 한 상황이 있습니다 (기본적으로 모든 메뉴의 항목 유형 이름 및 기타 항목을 얻었습니다) 그밖에). 러닝 drush updatedb
은 MYMODULE_update_7101
첫 번째가 아닌 세 번째로 실행 되었습니다 .
@macaleaa와 @moshe weitzman이 제안한 솔루션을 시도했습니다.
drush php-eval 'module_load_install('MYMODULE');MYMODULE_update_7101();'
실행하기 전에 drush updatedb
도움이되지 않았습니다 . 테이블을 이미 updatedb
실행 했다는 이유로 다시 실행을 시도 MYMODULE_update_7101()
하고 오류가 발생 하여 drush 실행이 실패했습니다 . 기본적으로 위 코드는 업데이트를 실행했지만 업데이트가 실행 된 시스템에는 해당 표시를 남기지 않았습니다. 아마도 다른 많은 것들이 있습니다.update.php
모듈에 대한 최신 버전 번호를 DB 등에 저장하기 위해 각 업데이트를 실행 한 후에해야 할 일이 많이 있습니다.
내가 겪은 update.php
실제로 각 업데이트 기능을 실행하는 방법과 그 후, 함수를 찾는 것은 업데이트 함수를 호출하고 또한 다른 모든 물건을 할 것이라고 전화를 않는 것을 볼 수 있습니다. 나는 이것을 얻었습니다.
include_once DRUPAL_ROOT . "/includes/update.inc";
$c["results"]["#abort"] = array();
update_do_one("MYMODULE", 7101, array(), $c);
내가 실제로 돌진으로 달렸다.
drush eval 'include_once DRUPAL_ROOT . "/includes/update.inc"; $c["results"]["#abort"] = array(); update_do_one("MYMODULE", 7101, array(), $c);'
업데이트를 실행했지만 아무런 문제가 없었지만 실행했을 때 MYMODULE 버전 7101이 업데이트 목록에 계속 나타납니다. updatedb
사이트 검사에서 모든 것이 좋아 보였습니다.
약간 해키와 6 년 늦었지만 모든 것이 잘 끝나는가?