문제

나는 Magento와 함께 온라인 상점을 개발하고 있습니다. 이 사이트는 트래픽이 높으며 테스트 및 생산 두 가지 서버 설정이 필요합니다.

내 질문은 온라인 상점, 특히 Magento가 이것을 어떻게 처리합니까?

내가 가진 아이디어는 다음과 같습니다.

  • 생산 사이트를 오프라인으로 사용하십시오
  • 빈 테스트 데이터베이스
  • 생산 데이터베이스에서 데이터를 복사하십시오. (아마도 )
  • 테스트
  • 파일과 데이터베이스를 프로덕션 사이트에 복사하십시오

나는 Magento가 엔터프라이즈 옵션을 제공한다는 것을 알고 있지만 이것은 내가 스스로 쓰고 싶은 대본입니다.

도움이 되었습니까?

해결책

생산 사이트를 오프라인으로 가져갈 필요는 없습니다.

내가 sufgest (그리고 당신은 이것을 스크립트 할 수 있어야하는 것)는 생산 사이트에서 실행됩니다. mysqldump -u root -ppassword db_name > db_name.sql 데이터베이스 사본을 생성합니다. 그런 다음 파일 디렉토리에서 rsync (Linux 및 Windows 모두에 대해 얻을 수 있음)를 rsync로 실행하십시오. 복사하려는 파일 (이미지?).

당신이 당신이 당신의 생산을 추진하고 싶다는 테스트를 한 후에는 두 가지 방법 중 하나를 할 수 있습니다. 중 하나 (및이 방법을 선호) SQL 파일의 데이터베이스에 변경 사항을 저장하고 생산 사이트에서 실행하고 동시에 변경된 파일을 다시 동기화합니다. 또는 MySQL을 사용하여 모든 쿼리를 파일에 로그인 한 다음 프로덕션 사이트에서이를 재생할 수 있습니다.

필요하지 않은 경우 생산 사이트를 중단하지 않는 것이 가장 좋습니다.

다른 팁

당신은 슬레이브 데이터베이스에서 슬레이브를 읽고 살아있는 글을 쓰고있는 마스터/슬레이브 mysql을 원합니다. local.xml 파일에서 설정할 수 있습니다. var/session 및 var/cache 파일을 위해 -exclude와 함께 파일에 대해 rsync를 실행할 수 있어야합니다. 또한 로고가 개발 서버 인 경우 로고를 excluce 할 수 있습니다. 그런 다음 로고를 '테스트'로 변경하여 라이브와 혼동하지 않도록 변경할 수 있습니다.

실제로 데이터베이스를 변경하는 경우 이전 코드에서 새 코드로 전환하는 동안 사이트를 오프라인으로 가져 가서 데이터베이스 마이그레이션 스크립트를 실행해야합니다.

당신은 그것을 알고 싶어 할 것입니다

  • Postgres는 트랜잭션 DDL을 가지고 있습니다. 거래에서 마이그레이션 스크립트를 랩핑하고 중간에 무언가가 끊어지면 모든 것이 롤백됩니다 (드롭 테이블 포함).

  • Postgres는 열을 추가하기 위해 테이블을 다시 작성할 필요가 없습니다 (MySQL은 매우 느립니다).

  • MyISAM을 사용하는 경우 여러 가지 이유로 운명에 빠지면 백업을 수행하면 사이트가 몇 분 동안 오프라인으로 표시됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top