우리는 CRUD 작업을 수행하는 데있어 상당히 간단한 Django 기반 웹 사이트를 운영합니다. 필자는 로컬에서 테스트 및 개발을 수행하고 테스트가 완료되면 라이브 서버로 릴리스 및 데이터베이스 스키마 변경 사항을 체크 아웃했습니다. 최근 몇 가지 유형의 변경 사항을 발표 할 때 문제가 발생했습니다. 다음과 같은 일련의 이벤트를 상상해라이브 웹 사이트를 안전하게 업데이트하는 방법
- 사용자는
- 사이트는
- 사용자들이
- 서버에서 작업 된 양식을 제출 양식에 새 필드를 필요로 업데이트되는 웹 양식을 여는 것은 오류를 반환 2 단계에서 추가 된 새로운 필드를받을 것으로 예상했기 때문에
다른 사이트에서는 이러한 종류의 문제를 어떻게 처리합니까? 내 아이디어 :
- 업데이트가 진행되는 동안 사이트를 오프라인으로 전환하십시오. 사용자가 웹 양식을 제출하기 전에 무한한 시간 동안 열어 놓을 수는 있지만 일정 시간이 지나면 누군가가 양식을 제출할 가능성이 거의 없기 때문에 이것은 실제로 문제를 해결하지 못합니다.
- 트래픽이 매우 적은 시간에 자동 업데이트를 수행합니다. 다시 한번이 문제는 실제로 해결되지 않지만 우리 사이트는 그다지 인기가 없으며 3시에 업데이트하면 많은 사용자가있을 것입니다. 이 기술에 대한 한 가지 우려 사항은 실패한 자동 업데이트입니다.
- 버전 관리 양식 이렇게하면 이전 양식이 제출되고 더 사용자 친화적 인 응답을 제공한다는 것을 서버에서 인식합니다. 이 문제를 해결할 수있는 자동화 도구가 있습니까?
생각들?
문제가 있습니까? 사용자가 업그레이드 중에 양식을 제출합니다. 손을 쥐기에 충분할만큼 일반적입니까? 또는 이것이 가설적인 "언젠가는 일어날 수 있습니까?"라는 문제입니까? –
@ S.Lott, 코너 케이스에 대해 걱정하지 않는다면 좋은 프로그래머가 될 수 없습니다. –
진짜 질문은 "라이브 웹 사이트를 업그레이드하는 좋은 방법은 무엇입니까?"라고 생각합니다. – winsmith