스테이징 서버 설정하기

위 설정의 핵심은 바로 이 점입니다. 스테이징 서버가 동일한 버킷을 가리키도록 하면 동기화를 훨씬 쉽게 유지할 수 있어 매우 유용합니다.

다만, 스테이징 서버가 자동으로 백업에 기여하거나(또는 백업을 삭제하거나)하지 않도록 해야 합니다. 이를 위해 아래 설정으로 해당 기능이 비활성화되어 있습니다:

스테이징 사이트에서는 CDN도 꺼야 한다는 점에 동의합니다. 저는 직접 해본 적은 없지만, 방법을 알게 되면 OP의 위키에 업데이트하거나 추가해 주시면 좋겠습니다.

2개의 좋아요

네이선, 감사합니다. S3 백업이 작업을 더 쉽게 만들어 준다는 언급을 봤는데, 백업은 사이트 자산과 다르기 때문에 확실하지 않았습니다.

이미 백업과 이메일을 모두 비활성화해 두었으니 그 부분은 문제없습니다. 이제 스테이징 서버를 기존 버킷으로 연결하고 CDN이 사용되지 않도록 확인하겠습니다.

1개의 좋아요

백업 공유는 프로덕션 데이터베이스를 스테이징으로 복사하는 것이 쉬워지므로 정말 유용합니다.

2개의 좋아요

나는 rsync 방법을 사용하여 프로덕션 Discourse의 미러를 생성할 계획입니다.

Discourse와 통합되는 다른 웹사이트들이 몇 개 있습니다. 따라서 해당 사이트들의 개발/테스트 버전이 Discourse의 개발/테스트/스테이징 버전을 호출하고 상호작용할 수 있다면 이상적입니다.

따라서 필요한 때만 가동할 것이며, 매일이 아니라 아마 한 달에 한 번 정도로만 프로덕션(PROD)의 데이터베이스 백업을 스테이징(STAGING)에 정기적으로 복원할 것입니다.

이렇게 할 경우, 데이터베이스를 복원할 때 일부 설정이 원래대로 되돌아가는 것을 어떻게 방지할 수 있을까요? :thinking:

예를 들어, 아래 설정들은 매우 유용할 것입니다:

데이터베이스 백업을 복원한 후, Discourse를 시작하기 전에 수동으로 일부 설정을 적용하는 방법이 있을까요? 다른 아이디어, 제안, 주의할 점이 있다면 알려주세요. :thinking:

S3에 백업을 저장하고 이를 환경 변수(ENV)를 통해 설정해 두었다면, 해당 백업을 복원할 수 있는 새 사이트를 비교적 쉽게 구축할 수 있습니다. 새 VM을 생성하고, discourse를 클론한 뒤, yml 파일을 복사하고, 다시 빌드한 후 복원하면 됩니다. 게시물의 인용문에 나와 있듯이, 데이터베이스의 설정은 환경 변수를 통해 오버라이드할 수 있습니다.

3개의 좋아요

완벽하네요. 너무 쉬워서 오히려 의심이 될 정도입니다 :smiley:

2개의 좋아요

무언가 빠진 단계가 있을까요? 1년 전쯤에는 잘 작동했던 것 같은데. 그런데 지금은 데이터는 채워지긴 하지만, About 카테고리 외에 다른 주제나 게시글이 추가되지 않습니다… 무언가 변경된 건가요?

방금 테스트해 보니 그룹과 사용자 레코드는 생성되었지만, 카테고리 생성 시 다음과 같은 오류가 발생했습니다.

ActiveRecord::RecordInvalid: Validation failed: Category Name has already been taken (ActiveRecord::RecordInvalid)

이미 존재하는 이름의 카테고리를 다시 생성하려 하지 않을 정도로 충분히 스마트해야 할 것 같습니다.

다만 제 사이트는 비어 있지 않았습니다. 또한 데이터베이스를 먼저 비운 후 실행되는 dev:repopulate 태스크도 있습니다.

1개의 좋아요

제이, 감사합니다! 제가 시도한 내용을 보여주는 스크린샷입니다… "개발 환경"에 있어야 하는 것 같습니다. 어떻게 진입하나요?

결국 이전에 이 방식으로 데이터를 입력했던 discourse 인스턴스 중 하나에서 오래된 백업을 복원했습니다. 이 작업을 수행해야 했지만, 잘 작동했습니다.

데이터베이스를 삭제하려면 먼저 해야 할 작업이 있습니다. db:drop rake 태스크를 실행하면 해당 작업이 무엇인지 알려줍니다. 따라서 태스크를 실행하기 전에 sv stop unicorn을 실행한 후 데이터베이스를 삭제, 생성, 마이그레이션해야 할 것 같습니다. 아니면 제가 다음으로 시도할 방법이지만, 당신에게는 다른 해결책이 있네요…

1개의 좋아요

14개의 게시글이 새로운 주제로 분리되었습니다: 서버를 2개 컨테이너 구성으로 변경

스테이징 서버에 테스트 데이터를 시드하려고 하는데, 다음 오류가 발생합니다:

rake aborted!
Database commands are only supported in development environment

멀티사이트(multisite) 환경에서 실행하는 명령어는 다음과 같습니다:

./launcher enter web_only
ALLOW_DEV_POPULATE=1 bundle install
RAILS_DB=instance-x ALLOW_DEV_POPULATE=1 rake dev:populate

지금까지는 문제없이 사용했는데, 갑자기 이 오류가 발생했습니다. 프로덕션 환경에서 데이터베이스 명령을 허용하도록 환경 변수를 설정할 수 있을까요?