이 질문을 다른 게시물 속에 숨겨서는 안 됐을 것 같습니다.
@gerhard 현재 다양한 bbcode는 어떻게 다르게 처리되고 있나요? 이것이 실수로 발생한 것인지, 의도적인 것인지 궁금합니다.
이 질문을 다른 게시물 속에 숨겨서는 안 됐을 것 같습니다.
@gerhard 현재 다양한 bbcode는 어떻게 다르게 처리되고 있나요? 이것이 실수로 발생한 것인지, 의도적인 것인지 궁금합니다.
더 큰 머신에서 테스트했을 때 분당 몇 개의 게시글을 가져오셨나요? 현재 8코어 Xeon에서 가져오기를 실행 중인데, 머신의 부하가 거의 없고 분당 1000개 이상의 속도로 크게 올라가지 않습니다.
빠른 NVMe SSD를 사용하고 있으므로 I/O가 병목인 것 같지는 않습니다. 속도를 더 향상시킬 방법에 대한 아이디어가 있으신가요? 전체 가져오기 시간을 1~2시간 정도 줄이기 위해 몇 퍼센트라도 성능을 개선하고 싶습니다(현재 약 14시간 소요 중).
안녕하세요, 작은 문제가 생겼습니다… 약 10만 개의 게시글을 가져오고 변환한 후, 리다이렉트 링크를 제대로 설정하지 않았다는 사실을 알게 되었습니다 (설정 파일 settings.yml에서 이모지를 이모티콘으로 연결하지 않은 것뿐 아니라, 상단에도…). 이미 설정해 둔 다른 부분에는 영향을 주지 않으면서 링크가 올바르게 파싱되도록 모든 것을 다시 가져올 수 있는 방법이 있을까요?
스크립트를 다시 실행하면 이미 가져온 것으로 판단해서 아무것도 하지 않을까요, 아니면 다시 처리될까요?
제가 확인한 바로는, 안타깝게도 이것이 불가능합니다. 말씀하신 대로 이미 가져온 게시글은 무시합니다.
임시적으로 가져온 게시물을 잊게 한 뒤 다시 가져오는 방법이 있을까요?
(영구적으로 삭제하는 것은 원치 않습니다. 나중에 게시물을 추가할 예정이므로)
아마 의도적인 것은 아닐 겁니다. BBCode에서 Markdown으로의 변환 기능이 아직 완벽하지 않기 때문입니다.
그렇게 들리네요. 단, 단일 코어 속도가 더 높은 CPU를 찾을 수 있는 경우를 제외하고는요.
가져오기를 시작하기 이전 시점의 백업이 있나요? 백업이 있다면 복원한 뒤 가져오기를 다시 시작할 수 있습니다. 그렇지 않다면 운이 좋지 않은 셈이고 처음부터 다시 시작해야 합니다.
안타깝네요. 이모티콘(smilies)에도 해당되나요?
“처음부터 다시 시작”이라는 것은 디스코urs를 재설치하라는 뜻인가요?
죄송하지만, 가져오기 이후 이모티콘을 수정하는 것은 매우 어렵고 오류가 발생하기 쉽습니다. 그 방향으로 진행하시길 원하신다면 도움을 드리기 어렵습니다.
네, 기본적으로 그렇습니다. 모든 데이터를 삭제하고 컨테이너를 다시 구축하면 몇 가지 단계를 건너뛸 수 있습니다.
./launcher stop app
rm -rf /var/discourse/shared/
./launcher rebuild app
감사합니다!
말씀하신 두 명령어로 포럼이 가져오기 가능한 상태가 된다는 건가요? 다른 단계는 필요 없나요? (테마, 상, 그룹 등 이전에 설정해 둔 것들은 어떻게 되나요? 그것들을 백업할 방법이 있을까요? (테마는 저장하고 가져오는 방법을 알고 있지만, 다른 설정들은요.)) (아, 괄호가 너무 많았네요)
사실, 모든 서비스가 중단된 이주 도중에 이걸 알았더라면 큰일 날 뻔했으니, 이제서야 발견해서 다행이라고 생각합니다. 그래서 이제 수정할 때인데요, 가능한 한 재작업을 최소화하고 싶습니다…
네, 백업이 없으면 그 작업을 수동으로 다시 해야 해요.
어떻게든 명확하지 않다면, 이는 데이터베이스 전체를 삭제하고 처음부터 시작하게 된다는 뜻입니다.
검색해 보면 설정을 저장하고 복원하는 몇 가지 방법을 찾을 수 있습니다.
하지만 제안대로, 가져오기 후에 해당 작업을 하거나, 모든 작업을 수행한 뒤 가져오기 전에 사용할 시작점으로 백업 파일을 만드는 것이 좋습니다.
헬미님, 안녕하세요.
커스텀 BB 코드 플러그인을 개발 중인 한 친구가 가져오기(importer) 기능의 버그를 발견했습니다. 이 버그는 색상 태그가 올바르게 렌더링되지 않는 원인이었습니다.
그의 설명을 그대로 옮기면 다음과 같습니다:
“게시물에 포함된 색상 태그가 의도적으로 제거되고 있습니다. 변환기(converter)의 버그가 닫기 태그만 제거한다는 것이 아닙니다. '버그’는 명명된 색상(named colors)에 대한 색상 태그를 제거하지 않는다는 점입니다.”
근거:
def clean_bbcodes(text)
# Many phpbb bbcode tags have a hash attached to them. Examples:
# [url=https://google.com:1qh1i7ky]click here[/url:1qh1i7ky]
# [quote="cybereality":b0wtlzex]Some text.[/quote:b0wtlzex]
text.gsub!(/:(?:\w{8})\]/, ']')
# remove color tags
text.gsub!(/\[\/?color(=#[a-z0-9]*)?\]/i, "")
end
마지막 부분인 text.gsub!(/\[\/?color(=#[a-z0-9]*)?\]/i, "")는 해시 코드를 가진 색상 태그와 닫기 색상 태그를 캡처하지만, 명명된 색상(예: color=green 등)을 가진 색상 태그는 캡처하지 않는 정규식입니다.
해결책: 해당 줄을 제거하십시오.
text.gsub!(/\[\/?color(=#[a-z0-9]*)?\]/i, "")
실제로는 이 줄이 필요하지 않습니다. 표시 방식을 어떻게 결정하든 색상 데이터를 유지하는 것이 좋습니다. (물론 우리 포럼의 경우 이것이 해결책입니다. 디스코URS의 경우 명명된 색상 태그뿐만 아니라 모든 색상 태그를 제거하도록 만들 가능성이 높습니다)
게르하르트, 안녕하세요. 말씀하신 대로 작업을 진행했습니다. (먼저 삭제한 뒤, 많은 작업을 다시 하고, 백업을 만든 다음 가져오기를 실행했죠.) 그런데 중간에 뭔가 잘못했다는 걸 알게 되어 가져오기를 중단하고 처음부터 다시 시작해야 했습니다. (이미 데이터가 일부 가져와져 있었기 때문이죠.)
그래서 다시 모든 것을 삭제했습니다.
백업을 복원하고 가져오기를 수행할 수 있도록 앱을 다시 구축한 후, 사이트가 연결을 거부합니다.
discourse doctor를 실행하면 [domain]의 Discourse 버전을 찾을 수 없고, localhost에서도 찾을 수 없다고 표시됩니다. 다른 오류는 없습니다.
어떻게 해야 하나요?
재구축(rebuild)할 필요는 없었고, 백업만 복원하면 됐습니다.
제 추측으로는 다음 명령을 실행해야 할 것 같습니다.
./launcher start import
Discourse-doctor는 import 컨테이너에 대한 정보를 가지고 있지 않습니다.
app과 import는 동일한 버전이어야 하므로, 두 컨테이너를 모두 재구축해야 할 수도 있습니다.
import를 다시 빌드하고 앱을 다시 빌드했는데도 여전히 연결이 거부됩니다. ![]()
데이터베이스 덤프와 phpBB 파일을 다시 추가해야 합니다. 초기화 과정에서 삭제했을 가능성이 큽니다.
네, 삭제했습니다. 그런데 먼저 제 데이터를 복원해야 하지 않을까요? 이전에는 가져오기 전에 많은 설정을 해두어서, 나중에 가져오기를 다시 해야 할 때 처음부터 다시 할 필요가 없도록 했거든요. 지금 상태라면 그냥 빈 Discourse 인스턴스에 가져오게 되는 건가요?
그 다음에는 /var/discourse/shared/backups/default에 있어야 할 백업을 복원합니다
그리고 또 왔네요. 죄송하지만 이번엔 또 다른 문제가 생겼어요…
이번엔: 이모티콘(스마일리스)! 각 스마일리스를 settings.yml 파일에 이렇게 넣었는데요:
happy: [‘:D’,‘:-D’]
woo: ‘:woo:’
등등.
스마일리스 이미지들은 /var/discourse/shared/standalone/import/images/smilies 디렉토리에 넣었습니다.
가져오기(import)를 할 때 스마일리스를 찾을 수 없다는 등의 오류는 보이지 않았어요.
그런데도 스마일리스가 이모지로 매핑되지 않았고, 게시물에서는 이미지로 변환되었습니다.
제가 뭘 잘못한 걸까요?
도와주셔서 다시 한번 감사합니다!
수정:
물론이죠… phpbb2가 아니라 phpbb3에서 매핑해야 하잖아요…
이렇게 하면 해결될 것 같긴 하지만, 이게 진짜 문제였는지 테스트를 해봐야 할 것 같아요.
수정2: 스마일리스가 삽입된 새로운 phpbb3 데이터베이스 덤프를 사용해 이제 새로운 가져오기를 수행했습니다. 그래도 여전히 스마일리스가 없습니다. 이미지로 변환되었고 이모지 세트에도 없습니다. 문제의 원인이 뭘 수 있을까요?
드디어 이모티콘을 이모지로 매핑하는 데 성공했습니다.
이미지 파일명과 이모티콘 코드가 모두 달랐던 150개 이상의 커스텀 이모티콘을 다뤄야 했기 때문에 저에게는 시행착오가 많았습니다. 저와 같은 상황에 처한 분들을 위해 간단한 확장 가이드를 공유합니다.
가져오기(Importer)가 이모티콘에 대해 어떻게 동작하는지 이해하기
저는 가져오기 도구에 이모티콘 코드를 추가하고 지정된 이미지 폴더에 이미지를 넣으면, 해당 이미지가 자동으로 이모지 폴더에도 추가될 줄 알았습니다. 하지만 실제로는 그렇지 않습니다. 따라서 이모티콘 이미지를 이모지로 수동으로 가져와야 합니다.
가져올 때, 실제로 사용할 이모티콘 코드와 동일한 이름을 가져야 합니다. 예를 들어 사용자가 :cheer:를 입력했을 때 표시되던 이미지 파일명이 "cheery_icon0.gif"인 이모티콘이 있다면, 해당 이미지를 cheer.gif로 이름 변경한 후 이모지 폴더에 업로드해야 합니다. (관리자 CP > 커스터마이즈 > 이모지)
phpBB에서 <;-), %-), :3 같은 코드로 표시되던 이모티콘이 여러 개 있는 경우, 상황이 더 복잡해집니다.
<;-)
%-)
:3
예를 들어, 제 경우 <:-) 코드로 "_1partyguyhat.gif"라는 이름을 가진 이모티콘이 있었습니다.
code : <:-) and was named "_1partyguyhat.gif"
먼저 Discourse에서 사용할 새 코드를 결정해야 했습니다. 파일명에 <:-) 같은 특수문자를 사용할 수 없기 때문입니다. 그런 다음 그 코드로 gif 파일을 이름 변경하고, 설정 파일에 해당하는 매핑을 추가했습니다.
저의 경우 그 특정 이모티콘에 대해 다음과 같이 설정했습니다:
[code]party_hat: ‘<:-)’/code]
이렇게 하면 가져오기 시, 게시물에서 누군가가 <:-)를 입력한 모든 인스턴스가 :party_hat:로 변환됩니다.
그리고 이모지에 해당 이모지가 사용 가능한 경우, 파티 모자 이모지를 사용하여 이모티콘을 렌더링합니다.
120개의 이모티콘을 변환해야 할 때의 팁 ![]()
;를 :로 잘못 입력하면 이런 일이 일어날 수 있으니 믿어주세요!)settings.yml 문제 해결
emojis 줄의 주석(comment)을 제거(uncomment)해야 합니다. (저는 이 부분을 완전히 놓치고 있었습니다.):cheer:로 코딩된 이모티콘이 있고 이모지에 cheer.gif를 넣었다 하더라도, 모든 코드를 추가해야 합니다. 그렇지 않으면 이모지 코드가 아닌 이미지 파일로 변환됩니다.:yes: 또는 :no:로 코딩된 이모티콘이 있다면, 주석 처리해야 합니다. 그렇지 않으면 :true: 또는 :false:라는 부울(boolean) 값으로 파싱됩니다. 그런 경우 특정 이모지를 코딩하려면 다음과 같이 해야 합니다: "yes": ':yes:' 이 글이 누군가에게 도움이 되기를 바랍니다. 제가 이것을 제대로 가져오기까지 거의 2주를 보냈다는 것을 알고 있기 때문입니다.