Discourse에 데이터베이스 클리너(Database Cleaner) 도구가 있나요?
이 도구는 데이터베이스에서 불필요한 구성 데이터를 제거합니다. 이 도구는 Discourse 기본 설치에 존재하지 않는 추가된 컬럼, 구성 행, 테이블을 데이터베이스에서 제거합니다. 모든 콘텐츠와 사이트 설정은 그대로 유지됩니다. 주요 목적은 데이터베이스에서 모든 플러그인과 테마 구성 요소를 제거하는 것입니다.
Discourse에 데이터베이스 클리너(Database Cleaner) 도구가 있나요?
이 도구는 데이터베이스에서 불필요한 구성 데이터를 제거합니다. 이 도구는 Discourse 기본 설치에 존재하지 않는 추가된 컬럼, 구성 행, 테이블을 데이터베이스에서 제거합니다. 모든 콘텐츠와 사이트 설정은 그대로 유지됩니다. 주요 목적은 데이터베이스에서 모든 플러그인과 테마 구성 요소를 제거하는 것입니다.
고려할 수 있는 최선의 해결책은 백업에서 새 인스턴스를 설정하는 것입니다 ![]()
수동 작업이 많이 필요하지 않으면서도 포럼 데이터를 유지하면서 가장 깔끔하게 처리할 수 있는 방법입니다.
다만, 백업에는 백업한 인스턴스에 존재했던 모든 테이블이 포함될 것이며, 이는 새 인스턴스에 플러그인이 설치되지 않았더라도 플러그인에 의해 생성된 테이블을 포함할 수 있습니다.
직접 손을 대고 싶다면, rake 작업을 사용하여 데이터베이스를 삭제하고 새 데이터베이스를 생성한 뒤 마이그레이션을 처음부터 다시 실행할 수 있습니다. 하지만 이렇게 하면 모든 데이터가 삭제됩니다.
이것이 바로 "새 환경을 설치하고 백업을 복원한다"는 것이 최선의 해결책이 아닌 이유입니다. 여전히 데이터베이스에 이전 컴포넌트와 플러그인의 잔여 데이터가 남아 있기 때문입니다.
데이터베이스의 컴포넌트 및 플러그인 변경 사항을 제거하고 데이터와 사이트 설정은 그대로 유지하는 최후의 수단(last-effort) 도구가 필요합니다. 이 도구는 새 설치 솔루션으로 전환하기 전에 실행할 수 있습니다.
그걸 구현하는 것이 어려울 것 같습니다:
하지만 일단 구현해 보고 이러한 문제를 해결할 수 있는지 확인해 보세요.
결국 카테고리나 태그를 포함한 인간 콘텐츠만 이동할 수 있는 도구가 전혀 없다는 뜻인가요?
"migrations"이라는 용어를 사용하고 계신데요, 이 용어로 무엇을 말씀하시나요?
저는 이 용어를 사용자 데이터와 콘텐츠를 시스템으로 "이관"하는 행위를 가리킬 때 사용합니다. 이 과정은 기본적으로 데이터베이스 구조를 변경해서는 안 됩니다.
데이터베이스 구조를 변경할 수 있는 유일한 것은 플러그인입니다. Discourse가 데이터베이스 구조를 변경할 수 있는 다른 방법을 허용하고 있지 않는 한 말입니다.
이것들은 Discourse와 각 플러그인(사용하는 경우)의 /db/migrations 폴더에 있습니다.