Похоже, что сейчас на моих форумах есть сотни или тысячи пустых постов или постов, в которых отсутствуют видео с YouTube. Причина, судя по всему, в том, что «запечённое» содержимое постов выглядит так:
<div class="cooked">
<div class="lazyYT" data-youtube-id="WJxSNbAer9M" data-youtube-title="Starset - Die For You (Official Audio)" data-width="480" data-height="270" data-parameters="feature=oembed&wmode=opaque">
</div>
</div>
Если я пересоберу HTML, видео с YouTube будут обработаны корректно с использованием lazy-video-wrapper.
Я немного покопался, и, похоже, эта проблема может быть связана с этим PR: DEV: Remove lazy-yt and replace with lazy-videos by jancernik · Pull Request #20722 · discourse/discourse · GitHub По какой-то причине после этого изменения не все посты были перепечены. Я не специалист по SQL или Discourse, поэтому не уверен, проблема ли это в самом скрипте миграции или в том, что он на каком-то этапе не сработал.
class RebakeLazyYtPosts < ActiveRecord::Migration[7.0]
def up
execute <<~SQL
UPDATE posts SET baked_version = 0
WHERE cooked LIKE '%lazyYT-container%'
SQL
end
Похоже, мне нужно перепечь несколько тысяч постов со ссылками на YouTube. Как мне лучше всего это сделать?