Меня просто интересует: есть ли какие-то конкретные причины, по которым плагин cakeday был отключён здесь?
Это ваша вина ![]()
Итак, решение для отключения плагина на форумах, где cakeday ранее не использовался, заключается в отключении cakeday на форумах, которые использовали его годами? Нет ли способа оставить настройки форумов, где он применялся ранее, без изменений?
Кажется, всё пошло не по плану.
Вот миграция #1, которая была закомментирована
.
Как можно узнать, была ли она выполнена на каждом экземпляре?
Эта миграция сохраняла SiteSetting.cakeday_enabled в базу данных.
Вот миграция для очистки, которая удаляет этот параметр, если он был создан примерно во время выполнения миграции #1. Выглядит это немного сомнительно но эй, это работает РЕДАКТИРОВАНО: это не работает.
Теперь система возвращается к значению по умолчанию, которое сейчас… выключено?
Дела пошли не по плану. Всё выглядело ненадёжно и не сработало.
Я только что обновил сайт на Discourse и не смог пройти этап очистки миграции, о которой вы говорите.
Эта миграция падает с ошибкой. discourse/plugins/discourse-cakeday/db/migrate/20251127125226_delete_old_default_values.rb at main · discourse/discourse · GitHub
При запуске миграции вызовы migration_timestamp("20250717093505") и migration_timestamp("20250811132217") из метода up возвращают значения nil. Эти nil-значения нарушают работу SQL-запроса в методе delete_settings миграции.
Вероятно, потому что миграция, на которую он ссылается, была закомментирована.
Мне всегда говорили, что миграции никогда не следует изменять после создания. Вот почему.
Я перемещу это в bug, надеясь, что это привлечет больше внимания…
Процесс объединения d-cakeday в ядро не прошел по плану…
Все связанные плагины должны быть отключены по умолчанию, и d-cakeday был одним из немногих перенесенных плагинов, которые всегда были включены.
Идея заключалась в том, что сайты, у которых плагин был включен до миграции в ядро, должны были сохранить его включенным, тогда как те, у которых плагина не было, будут использовать новое значение по умолчанию (выключено).
Я открыл PR, который заменяет последнюю (неверную) миграцию новой, использующей эвристику для определения того, следует ли включить cakeday/cakeday_birthday или оставить значение по умолчанию «выключено».
Эта тема была автоматически закрыта через 4 дня. Новые ответы больше не допускаются.