# 舊的 LazyYT 已烘焙帖子在 lazy-yt 被 lazy-video 取代後未被重新烘焙。

**URL:** <https://meta.discourse.org/t/old-lazyyt-cooked-posts-have-not-been-rebaked-after-lazy-yt-was-replaced-with-lazy-video/277024>\
**Category:** Support\
**Created:** [2023年八月29日 11:54 UTC](https://meta.discourse.org/t/old-lazyyt-cooked-posts-have-not-been-rebaked-after-lazy-yt-was-replaced-with-lazy-video/277024 "2023-08-29T11:54:04Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![MerryMinstrel](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merryminstrel/32/56896_2.png) [@MerryMinstrel](https://meta.discourse.org/u/MerryMinstrel)\
**Post date:** [2023年八月29日 11:54 UTC](https://meta.discourse.org/t/old-lazyyt-cooked-posts-have-not-been-rebaked-after-lazy-yt-was-replaced-with-lazy-video/277024/1 "2023-08-29T11:54:04Z")

</div>

看起来我的论坛现在有成百上千的空白帖子，或者帖子丢失了 YouTube 视频，原因似乎是烘焙后的帖子内容是这样的：

```html
<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&amp;wmode=opaque">
</div>
</div>

```

如果我重新烘焙，YouTube 视频会使用 lazy-video-wrapper 正确烘焙。

我做了一些研究，似乎这个问题可能与这个 PR 有关：[DEV: Remove lazy-yt and replace with lazy-videos by jancernik · Pull Request #20722 · discourse/discourse · GitHub](https://github.com/discourse/discourse/pull/20722/files#diff-bf1d63c809f6a4316ac0e9bbfe301355eaf676d9624f927c7e05750d3e5ce1b3%E3%80%82%E7%94%B1%E4%BA%8E%E6%9F%90%E7%A7%8D%E5%8E%9F%E5%9B%A0%EF%BC%8C%E5%9C%A8%E6%AD%A4%E6%9B%B4%E6%94%B9%E5%90%8E%EF%BC%8C%E5%B9%B6%E9%9D%9E%E6%89%80%E6%9C%89%E5%B8%96%E5%AD%90%E9%83%BD%E9%87%8D%E6%96%B0%E7%83%98%E7%84%99%E4%BA%86%E3%80%82%E6%88%91%E4%B8%8D%E6%98%AF) SQL 或 Discourse 的专家，所以我不确定问题是出在迁移脚本本身，还是它在某个时候失败了。

```ruby
class RebakeLazyYtPosts < ActiveRecord::Migration[7.0]
  def up
    execute <<~SQL
      UPDATE posts SET baked_version = 0
      WHERE cooked LIKE '%lazyYT-container%'
    SQL
  end

```

似乎我需要重新烘焙几千个包含 YouTube 链接的帖子。我应该如何进行？

---

<div class="post-metadata">

**Author:** ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)\
**Post date:** [2023年八月29日 12:45 UTC](https://meta.discourse.org/t/old-lazyyt-cooked-posts-have-not-been-rebaked-after-lazy-yt-was-replaced-with-lazy-video/277024/2 "2023-08-29T12:45:39Z")

</div>

我认为在重新烘焙大量帖子时可能会受到 YouTube 的速率限制。您可能需要考虑分批进行，并延迟一段时间，以避免再次遇到此问题。

---

<div class="post-metadata">

**Author:** ![MerryMinstrel](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merryminstrel/32/56896_2.png) [@MerryMinstrel](https://meta.discourse.org/u/MerryMinstrel)\
**Post date:** [2023年八月29日 18:40 UTC](https://meta.discourse.org/t/old-lazyyt-cooked-posts-have-not-been-rebaked-after-lazy-yt-was-replaced-with-lazy-video/277024/3 "2023-08-29T18:40:33Z")

</div>

您能否给我指一个关于如何做的参考资料？我猜想有一种方法不需要活动的终端会话。

---

<div class="post-metadata">

**Author:** ![MerryMinstrel](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merryminstrel/32/56896_2.png) [@MerryMinstrel](https://meta.discourse.org/u/MerryMinstrel)\
**Post date:** [2023年八月30日 22:57 UTC](https://meta.discourse.org/t/old-lazyyt-cooked-posts-have-not-been-rebaked-after-lazy-yt-was-replaced-with-lazy-video/277024/4 "2023-08-30T22:57:22Z")

</div>

我没有深入研究我的帖子为什么没有被重新烘焙，所以这仍然是个谜。如果有人遇到这个问题并想手动重新烘焙他们的帖子，这是我的做法：

进入 Rails 控制台：

> cd /var/discourse  
> ./launcher enter app  
> rails c

然后我运行了这个脚本：

```plaintext
posts = Post.where ("cooked like '%lazyYT%'")
posts.each do |p|
    p.rebake!     
    sleep 1 
end

```

每秒一个帖子比我想要的要慢，但我想确保我不会达到任何 YouTube 的限制（如果存在的话）。对于 12000 个帖子来说，等待时间不算太长。

---

<div class="post-metadata">

**Author:** ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)\
**Post date:** [2023年九月29日 22:57 UTC](https://meta.discourse.org/t/old-lazyyt-cooked-posts-have-not-been-rebaked-after-lazy-yt-was-replaced-with-lazy-video/277024/5 "2023-09-29T22:57:26Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
