이전 스크립트를 사용하여 Vanilla 3 포럼을 자체 호스팅 Discourse로 이전하고 있습니다.
이전 스크립트는 잘 작동합니다: RAILS_ENV=production ruby script/import_scripts/vanilla.rb /shared/uploads/export.text
유일한 문제는 내보내기를 한 후에는 다시 가져오기를 할 수 없다는 점입니다. 가져오기 스크립트는 두 번째 실행 시 정상적으로 실행되지만, 가져오기 파일에 적용한 데이터 변경사항이 반영되지 않습니다. 또한, 가져오기 프로세스가 두 번째 실행 시 약 50배 더 빠르게 실행되어 실제로 아무것도 가져오지 않는 것으로 의심됩니다.
질문: 첫 번째 실행 후 /var/www/discourse/script/import_scripts/에 있는 가져오기 스크립트를 다시 실행할 수 있는 방법이 있나요?
특히, 가져오기 파일 형식의 버그를 수정하면서 게시글 및 토론에 대한 업데이트만 적용하기 위해 다시 가져오기를 수행할 수 있기를 바랍니다.
현재까지 찾은 유일한 해결책은 Discourse 설치 전체를 삭제하고 처음부터 다시 시작하는 것이었는데, 매번 거의 1시간이 걸립니다.
어떤 팁이 있을까요?
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 프로그래머는 아닙니다. 다시 가져오기를 수행할 때 게시글의 내용을 강제로 교체하도록 이 코드를 수정할 수 있는 방법이 있을까요?