所有帖子在迁移期间已更改为 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 ")

此致
Sascha

2 个赞

@gerhard 你能修复那个迁移,并验证我们的迁移是否与“frozen-strings”兼容吗?

1 个赞

感谢报告该问题。已在 FIX: Migrations tried to change frozen string · discourse/discourse@a8cdd68 · GitHub 中修复。

4 个赞