我正在使用迁移脚本将 Vanilla 3 论坛迁移到自托管的 Discourse。
迁移脚本运行正常:
RAILS_ENV=production ruby script/import_scripts/vanilla.rb /shared/uploads/export.text
唯一的问题是,导出完成后,我似乎无法再次重新导入。导入脚本第二次运行时运行正常,但对导入文件所做的任何数据更改均未应用。此外,第二次运行时导入程序的速度大约快了 50 倍,这让我怀疑它实际上并没有导入任何内容。
问题:在第一次运行后,是否有任何方法可以重新运行位于 /var/www/discourse/script/import_scripts/ 的导入脚本?
特别是,在我修复导入文件格式中的错误时,我想能够重新导入以仅更新帖子和讨论。
到目前为止,我找到的唯一解决方案是删除整个 Discourse 安装并从头开始,这每次需要近一个小时。
有什么建议吗?
这是 vanilla.rb 的相关代码:
def import_posts
puts "", "importing posts..."
create_posts(@comments) do |comment|
next unless t = topic_lookup_from_imported_post_id("discussion#" + comment[:discussion_id])
{
id: "comment#" + comment[:comment_id],
user_id:
user_id_from_imported_user_id(comment[:insert_user_id]) || Discourse::SYSTEM_USER_ID,
topic_id: t[:topic_id],
raw: clean_up(comment[:body]),
created_at: parse_date(comment[:date_inserted]),
}
end
end
我是一名程序员,但不是 Ruby 程序员——有没有办法修改此代码,以便在重新导入时强制替换帖子内容?