라이브 사이트가 있으며 사람들이 적극적으로 콘텐츠를 제공하고 있습니다. 그러나 개발 환경을 약간 변경해야했기 때문에 몇 주가 걸렸습니다. 새로운 모듈을 설치하고 기존 모듈을 제거해야했기 때문에 데이터베이스 내용과 구조가 변경되었습니다.
내 질문은 지난 2 주 동안 추가 된 새로운 사용자를 새로 작성하지 않고이 사이트를 라이브 환경으로 다시 업로드하고 데이터베이스를 업데이트하는 방법입니다.
라이브 사이트가 있으며 사람들이 적극적으로 콘텐츠를 제공하고 있습니다. 그러나 개발 환경을 약간 변경해야했기 때문에 몇 주가 걸렸습니다. 새로운 모듈을 설치하고 기존 모듈을 제거해야했기 때문에 데이터베이스 내용과 구조가 변경되었습니다.
내 질문은 지난 2 주 동안 추가 된 새로운 사용자를 새로 작성하지 않고이 사이트를 라이브 환경으로 다시 업로드하고 데이터베이스를 업데이트하는 방법입니다.
답변:
Thomas Zahreddin이 옳습니다. 그러나 무엇이 바뀌 었는지 ( "2 주가 걸렸습니다 ..."), 고려해야 할 사항이 더 있습니다.
settings.php
입니다.사소한 경우가 없다면 미리 절차를 테스트하는 것이 좋습니다. 물론 라이브 시스템에서 시작하기 전에 파일과 데이터의 백업을 수행하십시오. ( 백업 및 마이그레이션 이 여기에 편리합니다.)
Drupal 웹 사이트를 업데이트 할 때 직장에서 처리하는 것과 동일한 절차가 있습니다. 가장 큰 문제는 Drupal이 데이터베이스에서 컨텐츠와 로직을 분리하는 데 큰 역할을하지 않는다는 것입니다.
Thomas Zagreddin과 BetaRide의 답변은 마이그레이션을 성공적으로 완료 할 수있는 최상의 기회를 제공하기에 충분합니다. 이 주제에 대한 성배는 실제로 없습니다.
웹 사이트를 최신 상태로 유지하는 데 많은 어려움을 겪는 개발 팁을 제공하고 싶습니다. 가능한 한 코드 (모듈 / 테마)에 논리를 유지하십시오. 마찬가지로, 가능한 한 많은 뷰를 작성하지 마십시오. 때로는 필요하지만 다른 데이터베이스 업데이트가 필요합니다 ...
소스 제어 관리를 사용하십시오!
모든 것을 코드로 유지할 수 있다면 (물론 항상 그렇게 할 수는 없지만) Git , SubVersion 또는 Mercury 와 같은 SCM 을 사용하여 소스를 업데이트하고 최악의 경우 시나리오를 업데이트가 계획대로 작동하지 않는 경우 이전 버전의 소스.
물론 이전 답변에서 언급했듯이 백업, 백업, 백업, 백업 ...
대부분의 변경 사항에는 기능 모듈을 사용할 수 있습니다. 이 모듈은 로컬 환경에서 수행 한 변경 사항 만 변경할 수 있습니다.
그렇지 않으면이 아름다운 모듈 백업 및 마이그레이션을 사용할 수 있습니다. 먼저이 모듈을 온라인으로 설치 한 다음 기존의 전체 컨텐츠 또는 데이터베이스를 백업 한 다음 로컬에 배포하십시오. 그런 다음 원하는 것을 로컬로 변경하고 다시 로컬을 백업 한 다음 온라인에 배치하십시오.
방금 같은 문제가있었습니다. 이를 해결하기 위해 필자가 개발하지 않은 콘텐츠는 새로운 사용자 세부 정보뿐이었습니다. 나는 단순히 관리자의 사람 탭으로 가서 사람 세부 정보를 개발자에게 복사했습니다. 개발자는 방금 자동화를하지 않고 입력했습니다. 다음에 개발자로부터 업로드 할 때 사람들의 세부 사항은 당연히 맞으며 덮어 쓰지 않습니다.