nathank
(Nathan Kershaw)
9월 9, 2023, 8:54오전
23
위 설정의 핵심은 바로 이 점입니다. 스테이징 서버가 동일한 버킷을 가리키도록 하면 동기화를 훨씬 쉽게 유지할 수 있어 매우 유용합니다.
다만, 스테이징 서버가 자동으로 백업에 기여하거나(또는 백업을 삭제하거나)하지 않도록 해야 합니다. 이를 위해 아래 설정으로 해당 기능이 비활성화되어 있습니다:
스테이징 사이트에서는 CDN도 꺼야 한다는 점에 동의합니다. 저는 직접 해본 적은 없지만, 방법을 알게 되면 OP의 위키 에 업데이트하거나 추가해 주시면 좋겠습니다.
2개의 좋아요
네이선, 감사합니다. S3 백업이 작업을 더 쉽게 만들어 준다는 언급을 봤는데, 백업은 사이트 자산과 다르기 때문에 확실하지 않았습니다.
이미 백업과 이메일을 모두 비활성화해 두었으니 그 부분은 문제없습니다. 이제 스테이징 서버를 기존 버킷으로 연결하고 CDN이 사용되지 않도록 확인하겠습니다.
1개의 좋아요
pfaffman
(Jay Pfaffman)
9월 9, 2023, 2:17오후
25
백업 공유는 프로덕션 데이터베이스를 스테이징으로 복사하는 것이 쉬워지므로 정말 유용합니다.
2개의 좋아요
Richie
(Richie Rich)
2월 21, 2024, 1:20오후
26
나는 rsync 방법 을 사용하여 프로덕션 Discourse의 미러를 생성할 계획입니다.
Discourse와 통합되는 다른 웹사이트들이 몇 개 있습니다. 따라서 해당 사이트들의 개발/테스트 버전이 Discourse의 개발/테스트/스테이징 버전을 호출하고 상호작용할 수 있다면 이상적 입니다.
따라서 필요한 때만 가동할 것이며, 매일이 아니라 아마 한 달에 한 번 정도로만 프로덕션(PROD)의 데이터베이스 백업을 스테이징(STAGING)에 정기적으로 복원할 것입니다.
이렇게 할 경우, 데이터베이스를 복원할 때 일부 설정이 원래대로 되돌아가는 것을 어떻게 방지할 수 있을까요?
예를 들어, 아래 설정들은 매우 유용할 것입니다:
데이터베이스 백업을 복원한 후, Discourse를 시작하기 전에 수동으로 일부 설정을 적용하는 방법이 있을까요? 다른 아이디어, 제안, 주의할 점이 있다면 알려주세요.
pfaffman
(Jay Pfaffman)
2월 21, 2024, 2:01오후
27
S3에 백업을 저장하고 이를 환경 변수(ENV)를 통해 설정해 두었다면, 해당 백업을 복원할 수 있는 새 사이트를 비교적 쉽게 구축할 수 있습니다. 새 VM을 생성하고, discourse를 클론한 뒤, yml 파일을 복사하고, 다시 빌드한 후 복원하면 됩니다. 게시물의 인용문에 나와 있듯이, 데이터베이스의 설정은 환경 변수를 통해 오버라이드할 수 있습니다.
3개의 좋아요
Richie
(Richie Rich)
2월 21, 2024, 4:15오후
28
완벽하네요. 너무 쉬워서 오히려 의심이 될 정도입니다
2개의 좋아요
무언가 빠진 단계가 있을까요? 1년 전쯤에는 잘 작동했던 것 같은데. 그런데 지금은 데이터는 채워지긴 하지만, About 카테고리 외에 다른 주제나 게시글이 추가되지 않습니다… 무언가 변경된 건가요?
Nathan Kershaw:
원하시는 것이 Discourse가 어떤지 살펴보기 위한 테스트 서버라면, 가짜 데이터로 확인해 보시는 것이 좋을 수 있습니다. 그렇게 하려면 다음을 실행할 수 있습니다:
./launcher enter app
ALLOW_DEV_POPULATE=1 bundle install
ALLOW_DEV_POPULATE=1 rake dev:populate
이렇게 하면 원하는 테마와 플러그인을 적용했을 때的样子를 볼 수 있도록 포럼에 가짜 데이터를 넣어 줍니다. 아직 포럼을 시작하지 않았다면, 이 방법을 통해 최종적인 모습이 대략 어떻게 될지 감을 잡을 수 있습니다.
pfaffman
(Jay Pfaffman)
3월 6, 2024, 4:21오후
30
방금 테스트해 보니 그룹과 사용자 레코드는 생성되었지만, 카테고리 생성 시 다음과 같은 오류가 발생했습니다.
ActiveRecord::RecordInvalid: Validation failed: Category Name has already been taken (ActiveRecord::RecordInvalid)
이미 존재하는 이름의 카테고리를 다시 생성하려 하지 않을 정도로 충분히 스마트해야 할 것 같습니다.
다만 제 사이트는 비어 있지 않았습니다. 또한 데이터베이스를 먼저 비운 후 실행되는 dev:repopulate 태스크도 있습니다.
1개의 좋아요
제이, 감사합니다! 제가 시도한 내용을 보여주는 스크린샷입니다… "개발 환경"에 있어야 하는 것 같습니다. 어떻게 진입하나요?
결국 이전에 이 방식으로 데이터를 입력했던 discourse 인스턴스 중 하나에서 오래된 백업을 복원했습니다. 이 작업 을 수행해야 했지만, 잘 작동했습니다.
pfaffman
(Jay Pfaffman)
3월 7, 2024, 1:41오후
33
데이터베이스를 삭제하려면 먼저 해야 할 작업이 있습니다. db:drop rake 태스크를 실행하면 해당 작업이 무엇인지 알려줍니다. 따라서 태스크를 실행하기 전에 sv stop unicorn을 실행한 후 데이터베이스를 삭제, 생성, 마이그레이션해야 할 것 같습니다. 아니면 제가 다음으로 시도할 방법이지만, 당신에게는 다른 해결책이 있네요…
1개의 좋아요
HAWK
(Hawk)
이 글을 에 분리
7월 15, 2024, 11:37오후
34
14개의 게시글이 새로운 주제로 분리되었습니다: 서버를 2개 컨테이너 구성으로 변경
manuel
(Manuel Kostka)
11월 30, 2024, 11:12오전
35
스테이징 서버에 테스트 데이터를 시드하려고 하는데, 다음 오류가 발생합니다:
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
지금까지는 문제없이 사용했는데, 갑자기 이 오류가 발생했습니다. 프로덕션 환경에서 데이터베이스 명령을 허용하도록 환경 변수를 설정할 수 있을까요?