移动后链接失效

我们迁移到新服务器后,许多论坛内部链接已损坏。我曾在临时 URL staging.example.com 上创建了新服务器以协助过渡,但现在过渡已完成,forum.example.com 上的许多链接仍指向 staging.example.com(该地址已不存在)。

我已验证 app.yml 并重新构建:

containers/app.yml: DISCOURSE_HOSTNAME: forum.example.com

我已在管理 > 设置中搜索是否残留任何“staging”相关内容。

DNS 早已完成传播。

我看到这个旧的参考链接,不确定是否与此相关。

如果除了手动编辑外没有其他修复方法,请问有什么提示可以找到所有出现的位置吗?搜索按钮对此效果不佳。

2 个赞

I did that. All worked great except now I have broken links.

So you’re saying the remap and/or rebake failed?

4 个赞

Sorry, I did not do a remap. I’ll try that tonight.

2 个赞

Yes, now I can say the remap failed.

> /var/www/discourse# discourse remap staging.example.com forum.example.com
> Rewriting all occurences of staging.example.com to forum.example.com
> THIS TASK WILL REWRITE DATA, ARE YOU SURE (type YES)
> YES
> Error: ERROR:  duplicate key value violates unique constraint "unique_post_links"
> DETAIL:  Key (topic_id, post_id, url)=(8718, 57455, https://forum.example.com/t/exampletopic/4606/336) already exists.
> The remap has only been partially applied due to the error above. Please re-run the script again.

I re-ran it as instructed and got the same error, on the same (topic_id, post_id, url) key.

I can get to the rails console and run some SQL/ActiveRecord if you can tell me what to run. Or Data Explorer.

Someone else will have to help you with this because I’m not sure why you would have duplicate key value.

Ironically, the offending topic 8718 and post 57455 is in a PM between two users lamenting that the links are broken!

But using data explorer, I see only one post with id 57455. I don’t know why remap is complaining.

1 个赞

The post probably contains both the old and new URL already. Just edit it and remove them.

2 个赞

I cleaned up a few posts and was able to complete the remap. However the rebake ran to 30% then encountered errors and hung the system and I had to reboot. System has adequate memory and disk space.

Question: After reboot, in ‘top’, there is a ruby process using 60% CPU. Is that the rake job? Would it resume after reboot?

It’s probably Sidekiq busy on rebakes. Go to /sidekiq on your forum to check.

1 个赞