내용을 덮어 쓰지 않고 Live drupal 서버를 어떻게 업데이트합니까?


9

라이브 사이트가 있으며 사람들이 적극적으로 콘텐츠를 제공하고 있습니다. 그러나 개발 환경을 약간 변경해야했기 때문에 몇 주가 걸렸습니다. 새로운 모듈을 설치하고 기존 모듈을 제거해야했기 때문에 데이터베이스 내용과 구조가 변경되었습니다.

내 질문은 지난 2 주 동안 추가 된 새로운 사용자를 새로 작성하지 않고이 사이트를 라이브 환경으로 다시 업로드하고 데이터베이스를 업데이트하는 방법입니다.


라이브 사이트를 잠그어야합니다 (예 : "사용자가 업데이트를 적용 할 수 없음"), 라이브 사이트를 개발 서버에 동기화하고 변경 사항을 적용하고 다시 동기화해야합니다. 개발 서버 (업데이트 코드 등을 추가하는 경우에만), 마스터 서버-개발 서버가 이것에 배포되고 (사용자가 내용을 추가하는 경우) 라이브 서버 (마스터가 이것에 배포 됨)가 있습니다.
Cyclonecode

답변:


3

Thomas Zahreddin이 옳습니다. 그러나 무엇이 바뀌 었는지 ( "2 주가 걸렸습니다 ..."), 고려해야 할 사항이 더 있습니다.

  1. 컨텐츠 유형을 추가 / 변경 했습니까? 내보내기 및 가져 오기를 시도하십시오. 내용물을 잃지 않도록하십시오.
  2. 뷰를 추가 / 변경 했습니까? 안전하게 내보내고 가져올 수 있습니다.
  3. 모듈 업데이트. 현재 데이터에서 테스트하십시오. 항상 사용자 데이터가 업데이트를 중단 할 가능성이 있습니다.
  4. 모듈 구성 변경 너무 많지 않으면 메모를하고 다시 실행하십시오. 다른 기능강력한 암 모듈을 사용해보십시오 . 또 다른 옵션은 정확한 변수 이름을 파악하고 값을에 쓰는 것 settings.php입니다.
  5. 개발자 시스템에 추가 컨텐츠가 있습니다. 여기는 정말 털이 있습니다. 배치 모듈 또는 노드 내보내기를 시도 할 수 있습니다 . 그러나 그들은 총알이 아닙니다.

사소한 경우가 없다면 미리 절차를 테스트하는 것이 좋습니다. 물론 라이브 시스템에서 시작하기 전에 파일과 데이터의 백업을 수행하십시오. ( 백업 및 마이그레이션 이 여기에 편리합니다.)


1

변경하려는 내용을 확인해야합니다.

  • contenttype 또는 bundle->이 레코드의 데이터베이스에서 새 contenttype을 삽입하거나, 노드를 내보내고 가져 오거나, 데이터베이스에서 contenttype을 변경하십시오.
  • 단일 필드 이름 및 contenttypes 번들 발생-> 예 : 관리자 인터페이스 또는
  • 필드의 값-> 가장 어려운 작업 : 데이터베이스의 SQL을 통해 (아마도) 마이그레이션 과 같은 모듈을 사용 하여이 작업을 수행 할 수 있습니다

1

Drupal 웹 사이트를 업데이트 할 때 직장에서 처리하는 것과 동일한 절차가 있습니다. 가장 큰 문제는 Drupal이 데이터베이스에서 컨텐츠와 로직을 분리하는 데 큰 역할을하지 않는다는 것입니다.

Thomas Zagreddin과 BetaRide의 답변은 마이그레이션을 성공적으로 완료 할 수있는 최상의 기회를 제공하기에 충분합니다. 이 주제에 대한 성배는 실제로 없습니다.

웹 사이트를 최신 상태로 유지하는 데 많은 어려움을 겪는 개발 팁을 제공하고 싶습니다. 가능한 한 코드 (모듈 / 테마)에 논리를 유지하십시오. 마찬가지로, 가능한 한 많은 뷰를 작성하지 마십시오. 때로는 필요하지만 다른 데이터베이스 업데이트가 필요합니다 ...

소스 제어 관리를 사용하십시오!

모든 것을 코드로 유지할 수 있다면 (물론 항상 그렇게 할 수는 없지만) Git , SubVersion 또는 Mercury 와 같은 SCM 을 사용하여 소스를 업데이트하고 최악의 경우 시나리오를 업데이트가 계획대로 작동하지 않는 경우 이전 버전의 소스.

물론 이전 답변에서 언급했듯이 백업, 백업, 백업, 백업 ...


0

대부분의 변경 사항에는 기능 모듈을 사용할 수 있습니다. 이 모듈은 로컬 환경에서 수행 한 변경 사항 만 변경할 수 있습니다.

그렇지 않으면이 아름다운 모듈 백업 및 마이그레이션을 사용할 수 있습니다. 먼저이 모듈을 온라인으로 설치 한 다음 기존의 전체 컨텐츠 또는 데이터베이스를 백업 한 다음 로컬에 배포하십시오. 그런 다음 원하는 것을 로컬로 변경하고 다시 로컬을 백업 한 다음 온라인에 배치하십시오.


0

방금 같은 문제가있었습니다. 이를 해결하기 위해 필자가 개발하지 않은 콘텐츠는 새로운 사용자 세부 정보뿐이었습니다. 나는 단순히 관리자의 사람 탭으로 가서 사람 세부 정보를 개발자에게 복사했습니다. 개발자는 방금 자동화를하지 않고 입력했습니다. 다음에 개발자로부터 업로드 할 때 사람들의 세부 사항은 당연히 맞으며 덮어 쓰지 않습니다.


Drupal 답변에 오신 것을 환영합니다! 위의 내용이 귀하에게 적합하다고 확신하지만 매우 강력하게 들리지는 않습니다. 입력 내용은 오타가 발생하기 쉬우 며 다음 번에 새로운 내용이 생길 경우 덮어 쓰게됩니다 (다시 입력해야하는 경우를 제외하고).
Free Radical
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.