Jestem autorem modułu Date iCal, a nowa główna wersja, nad którą pracuję (3.x) wymaga dwuczęściowej aktualizacji schematu dla użytkowników, którzy zainstalowali wersję 2.x. Napisałem hak aktualizacji, który wprowadza te zmiany, ale jeśli jeden z moich użytkowników nie uruchomi skryptu aktualizacji bazy danych, otrzyma komunikat o błędzie dotyczący importerów kanałów iCal.
Właściwym rozwiązaniem jest uruchomienie skryptu aktualizacji ... ale jeśli po prostu wejdą i ręcznie zmienią swoich importerów, aby pozbyć się wiadomości, ich importerzy pozostaną trwale uszkodzeni (ponieważ druga część aktualizacji schematu nie zostały stracone).
Czy jest więc jakiś sposób na wyświetlenie komunikatu użytkownikom, którzy nie uruchomili aktualizacji? Czy jakoś wymusić wykonanie haka aktualizacji przy pierwszym załadowaniu strony, gdy 3.x zostanie zainstalowany ponad 2.x?
variable_set()
w swojej funkcji aktualizacji, która ustawia zmienną, kiedy została pomyślnie uruchomiona, którą możesz zajrzeć do wewnątrz,_preprocess_page()
ale będziesz na nią patrzył za każdym razem, więc nie jestem pewien, czy byłaby to przyjazna dla wydajności.