데이터베이스 마이그레이션 스크립트 문서

안녕하세요. 저희 Discourse 인스턴스에서 사용 중인 플러그인(다국어)이 더 이상 업데이트되지 않고, 해당 플러그인의 일부 기능이 최신 버전의 Discourse에서 지원되고 있으므로, 데이터베이스의 값을 새로운 위치로 이동시키기 위해 마이그레이션 스크립트를 사용하고자 합니다.

그러나 이 사이트의 위키 문서나 Discourse의 git 저장소를 조사해 보았지만, 마이그레이션 스크립트를 작성하는 방법에 대한 문서를 찾지 못했습니다(어떤 클래스를 상속해야 하는지, 어떤 메서드를 사용해야 하는지 등).

혹시 제가 놓치고 있는 문서가 있을까요? 마이그레이션 코드 자체를 살펴보는 것 외에, 마이그레이션 스크립트에 대해 알아두면 좋은 팁이 있을까요?

미리 감사드립니다!

Discourse 스크립트가 제공되지 않는 플랫폼에서 콘텐츠를 이식해야 할 때, 이 주제에 대한 실제 문서를 찾는 데 어려움을 겪었습니다. 기존 스크립트는 역공학으로 분석하기가 제 수준을 넘어서는 것이었습니다. 결국 Rails 콘솔을 통해 토픽을 하나씩 수동으로 가져와야 했는데, 이는 확장성이 매우 낮았습니다.

더 큰 프로젝트(그리고 예산)가 있었다면 @pfaffman에게 그의 이식 서비스를 의뢰했을 가능성이 높았을 것입니다.

무엇을 하려 하시나요? 아직 Discourse를 사용하고 계신다면, 이는 마이그레이션이 아닙니다. 구체적으로 무엇을 어디로 이동하고 싶으신가요?

단순히 최신 버전의 Discourse로 전환하고 싶으시다면, 플러그인을 제거하고 업그레이드만 하시면 될 가능성이 높습니다.

더 이상 Discourse를 사용하지 않으시는 경우, 원하시는 것은 Discourse 마이그레이션 스크립트가 아닙니다.

Honeyxilia, 질문을 읽어본 바로는 Pavilion 다국어 플러그인으로 상당한 작업을 하신 후, 그 데이터를 새로운 Discourse 콘텐츠 로컬라이제이션 기능으로 '이전’하고 싶으신 것으로 보입니다. 맞나요? (저도 어디서부터 시작해야 할지 잘 모르겠습니다.)

이곳에서 말하는 마이그레이션 스크립트란, db/migrate 디렉터리 내에 ActiveRecord::Migration을 상속받아 Discourse 변경 사항에 맞게 데이터베이스를 조정하는 데 사용되는 데이터베이스 마이그레이션 스크립트를 의미합니다.

예를 들어, 다국어 플러그인의 로케일(native Discourse locale)을 Discourse의 네이티브 로케일로 이전하기 위한 SQL 명령어가 있습니다.

제 질문은 주로 데이터베이스 마이그레이션 스크립트에 관한 것으로, 데이터베이스를 더 새로운 버전으로 마이그레이션할 때 SQL 명령어를 자동화하는 방법에 대해 알고 싶습니다.

제가 정확히 표현하고 싶었던 내용을 반영하여 주제 제목을 수정했습니다.

이것들은 표준적인 Rails 마이그레이션입니다. 다음을 참고해 보세요:

추가할 계획이라면 코어를 포크하는 대신 플러그인으로 구현하는 것을 권장합니다. :slight_smile: