flarum.amybo.org에서 discourse forum.amybo.org로 마이그레이션을 완료했지만, 이제 포럼에 서식 문제가 가득합니다. 예를 들어:
@"Gerrit"#p174 물 기반 액체(라베이의 것과 비슷하게)라는 아이디어를 좋아해서 [Nutrisorb Trace Minerals](https://www.biocare.co.uk/nutrisorbr-liquid-trace-minerals-15ml) 성분을 확인해 보았습니다:
1. 정제수,
2. 붕산나트륨,
3. 방부제(구연산),
그 문제를 수정할 시기는 가져오기를 수행했을 때였습니다. 마이그레이션을 자주 수행하는 입장에서, 이렇게 형식이 엉망인 상태로 포럼을 런칭하는 것은 제가 가장 우려하는 부분 중 하나입니다. 가져오기 스크립트를 수정하는 것은 비교적 쉬웠을 텐데, 런칭 이후에 사후적으로 수정하는 것은 훨씬 어렵습니다. 그때는 1~2시간 정도면 해결되었을 일이, 지금은 그 2~5배의 작업량이 필요합니다.
네, 라이브 포럼의 내용을 정리하는 스크립트를 작성할 수 있습니다. 이때 (위험하지만) 편집 내역을 유지하지 않거나(즉, 편집 기록도 알림도 남지 않음), 편집은 수행하되 배기/알림을 하지 않도록 설정할 수 있습니다. 이전에 제가 이런 일을 해본 적이 꽤 있습니다. 다음과 같은 방식으로 처리할 수 있습니다:
fixes = Post.where("raw like '%something broken%'")
fixes.each do |p|
new_raw = p.raw.gsub!(some stuff)
PostRevisor.new(p).revise!(script_user, {raw: new_raw, edit_reason: 'post fixer!'}, {bypass_bump: true)
end
기존의 flarum_import.rb 스크립트를 사용하셨나요? Flarum의 p.content 필드(즉, 가져오기 스크립트의 raw에 들어가는 값)에 HTML이 들어 있다는 것은 상상하기 어렵습니다. Flarum은 마크다운을 사용한다고 확신하기 때문에 raw에 HTML이 있는 이유를 모르겠습니다. 아니면 스크립트가 그 정도로 깨져 있는 걸 수도 있겠네요.
하지만 취소선(strikethrough)은 HTML에 있는 것입니다. 아마 CSS로 간단히 수정할 수 있을 것입니다.
<POSTMENTION> 수정은 Discourse에는 인용(quotes)은 있지만 멘션(mentions)은 없기 때문에 조금 더 까다롭습니다. 쉬운 해결책은 그것들을 단순히 @${displayname}으로 바꾸는 것입니다(가져오기 전과 사용자 이름이 같기를 바라며, 또는 user_custom_fields에서 업데이트된 사용자 이름을 조회하십시오). 또 다른 방법은 @mention said [here](/t/-/<discourse ID for topic 25>/<8>)와 같은 링크를 포함하는 것입니다.
미친 해결책은 Flarum 데이터베이스에서 마크다운을 가져와서 raw 필드를 업데이트하는 스크립트를 작성하는 것입니다. 여전히 약간의 정리가 필요하지만(멘션과 POSTMENTION의 경우), 많은 문제를 해결할 것입니다.
또 다른 아이디어는 사이트를 동결하고, 가져온 모든 데이터를 대량 삭제한 후, 가져오기 스크립트를 수정하고 다시 실행하는 것입니다.
하지만 이전으로 옮긴 이후로 새로운 게시물이 많지 않으므로, 그것들을 어떻게든 저장해 두었다가 빈 데이터베이스에서 새로 가져오기를 수행한 후 다시 추가하는 것도 방법입니다. 새 사용자를 처리하는 것은 조금 더 어려울 것입니다.