Discourse 개발자 여러분께,
RE: rake posts:rebake (향후 기능)
rake posts:rebake # 각 게시글을 최신 마크다운으로 업데이트
rake posts:rebake_match[pattern,type,delay] # 문자열/정규식과 일치하는 모든 게시글을 다시 렌더링하고, 선택적으로 루프 지연을 설정
A. 토픽 ID(또는 게시글 ID)가 특정 정수보다 큰 경우에만 다시 렌더링할 수 있는 기능이 있으면 좋겠습니다.
rake posts:rebake_incremental['topic_id', 34567] # topic_id >= 34567인 경우 다시 렌더링
rake posts:rebake_incremental['post_id', 364123] # post_id >= 364123인 경우 다시 렌더링
이유:
(1) 다시 렌더링할 때, 특히 마이그레이션 작업을 수행하는 경우 개발자가 이미 일부 토픽/게시글을 마이그레이션했을 수 있습니다. 하지만 나중에 마이그레이션에 새 게시글이 추가될 때(예: 활성 포럼에서 마이그레이션이 업데이트되는 경우), 렌더링의 시작 지점을 지정할 방법이 없습니다(제가 아는 한). 패턴 매칭은 이를 위해 설계된 것이 아닙니다(제가 잘못 이해하고 있는 것이 아니라면).
(2) 마이그레이션 작업에서 구식 포럼의 텍스트를 Discourse에 맞게 세밀하게 조정할 때, 예를 들어 코딩 포럼에서 마크다운과 호환되도록 구식 포럼의 특수 문자를 조정하거나 레거시 포럼의 재귀적 BBCode를 조정하는 경우, 전체 데이터베이스 대신 예를 들어 마지막 1,000개의 게시글만 다시 렌더링할 수 있으면 좋습니다.
B. A보다 더 유연하게 (비교 연산자 지정)
rake posts:rebake_incremental['topic_id', '>=',34567] # topic_id >= 34567인 경우 다시 렌더링
rake posts:rebake_incremental['post_id','<' , 364123] # post_id < 364123인 경우 다시 렌더링
일반적 형태:
rake posts:rebake_incremental[target, operator, id]
여기서:
- target은 topic_id 또는 post_id입니다.
- operator는 산술 비교 연산자입니다.
- id는 정수로, topic_id 또는 post_id입니다.
참고: 마이그레이션 작업은 올바르게 완료하기까지 많은 반복이 필요합니다. 특히 원본 포럼의 게시글 텍스트와 인코딩을 Discourse로 변환할 때 그렇습니다. 마크다운 기반이 아닌 포럼에서는 사용할 수 있지만, 마크다운 처리가 되는 포럼으로 마이그레이션하면 문제가 되는 문자가 많습니다. 예시와 같이 다시 렌더링 과정에 대한 제어 권한이 더 있으면 도움이 될 것입니다.