Плагин Cakeday отключен

Меня просто интересует: есть ли какие-то конкретные причины, по которым плагин cakeday был отключён здесь?

1 лайк

Это ваша вина :rofl:

и затем DEV: Change cakeday and cakeday_birthday to off by default by cvx · Pull Request #36274 · discourse/discourse · GitHub

1 лайк

Итак, решение для отключения плагина на форумах, где cakeday ранее не использовался, заключается в отключении cakeday на форумах, которые использовали его годами? Нет ли способа оставить настройки форумов, где он применялся ранее, без изменений?

1 лайк

Кажется, всё пошло не по плану.

Вот миграция #1, которая была закомментирована :thinking:.
Как можно узнать, была ли она выполнена на каждом экземпляре?

Эта миграция сохраняла 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, надеясь, что это привлечет больше внимания…

1 лайк

Процесс объединения d-cakeday в ядро не прошел по плану…

Все связанные плагины должны быть отключены по умолчанию, и d-cakeday был одним из немногих перенесенных плагинов, которые всегда были включены.
Идея заключалась в том, что сайты, у которых плагин был включен до миграции в ядро, должны были сохранить его включенным, тогда как те, у которых плагина не было, будут использовать новое значение по умолчанию (выключено).

Я открыл PR, который заменяет последнюю (неверную) миграцию новой, использующей эвристику для определения того, следует ли включить cakeday/cakeday_birthday или оставить значение по умолчанию «выключено».

5 лайков

Эта тема была автоматически закрыта через 4 дня. Новые ответы больше не допускаются.