제 다른 게시글들을 참고할 수 있습니다. 해당 게시글들은 다음 내용들을 다루고 있습니다:
- 레이트 리밋 문제
- 검증 문제
- 스레드와 토픽 간 일관되지 않게 작동하는 검증 우회
결국, API의 예측 불가능한 문제를 시간 단위로 씨름하는 것보다 데이터베이스에 직접 접근하는 것이 더 쉬울 것 같았습니다.
API의 까다로운 문제를 해결하기 위해 수 시간을 허비하는 대신, 몇 분 만에 작동하는 것을 만들었고, hopefully 더 나은 성능을 기대할 수 있었습니다:
동일한 작업을 수행하고자 하는 분들을 위해, 지금까지의 탐색 결과를 정리한 노트를 공유합니다:
먼저 컨테이너에 진입합니다:
sudo ./launcher enter app
그 다음 데이터베이스에 연결합니다:
sudo -u postgres psql discourse
토픽을 삽입하려면:
insert into topics (title, user_id, archetype, fancy_title, category_id, created_at, updated_at, last_post_user_id, bumped_at) values ('psql test', 1, 'regular', 'psql test',8, NOW(), NOW(), 1, NOW());
새로운 ID를 가져옵니다. 제 경우 886이었습니다.
그 다음 게시글을 삽입합니다:
insert into posts (user_id, topic_id, post_number, raw, cooked, created_at, updated_at, last_version_at) values (1,886,1,'this is the raw text','this is the cooked test',NOW(),NOW(),NOW());
그 다음 posts_count를 업데이트합니다(토픽 삽입 시 이미 처리되지 않은 경우). 토픽 본문에는 초기 게시글이 필요해 보입니다. 아래는 해당 토픽의 게시글 수를 1로 변경합니다:
update topics set posts_count=2 where id=886;