Все сообщения переведены в post_type=3 во время миграции

Здравствуйте,

как описано здесь Upgrade fails while migrating, мы в настоящее время обновляемся с очень старой версии Discourse до актуальной v2.3.2. Мы заметили, что в процессе миграции все сообщения были изменены на post_type=3.

Мы обнаружили, что причиной этого «разрушения» является старый, но обновлённый скрипт миграции.

Похоже, что именно так должно быть, чтобы работало добавление строк:

sql = "UPDATE posts SET action_code = 'autoclosed.enabled', post_type = 3 "
sql += "WHERE post_type = 2 AND ("
sql += strings.map { |s| "raw ~* #{ActiveRecord::Base.connection.quote(s)}" }.join(' OR ')
sql += ")"

Текущий шаг миграции генерирует следующий запрос/вывод:

== 20150729150523 MigrateAutoClosePosts: migrating ============================
-- execute("UPDATE posts SET action_code = 'autoclosed.enabled', post_type = 3 ")

С уважением,
Саша

2 лайка

@gerhard, можешь исправить эту миграцию и проверить, что наши миграции совместимы с «frozen-strings»?

1 лайк

Спасибо за сообщение об этой проблеме. Исправлено в FIX: Migrations tried to change frozen string · discourse/discourse@a8cdd68 · GitHub

4 лайка