우리는 현재 데이터베이스 배포 기술에 대해 논의하고 있으며 현재 프로세스에서 최근 몇 차례의 오류가 발생했으며 배포를 롤백하려는 상황을 보았지만 이전 버전의 응용 프로그램은 새로운 버전의 응용 프로그램에 대해 테스트되지 않았습니다. 데이터 베이스.
한편으로 마이그레이션 스타일 배포가 있으며, 여기에는 버전 업 명령과 버전 다운 명령 (SQL 또는 응용 프로그램 언어로 작성되었는지 여부)이 있으며 앱은 필요한 버전을 알고 있습니다.
이것들은 간단하며 우리가 자주 롤백하지 않기 때문에 개발자는 단순합니다. 그러나 필드 / 테이블을 추가 할 때 위험이 있으며 롤백하기 전에 해당 필드가 채워집니다. 또는 이전 버전과 관련된 데이터를 삭제하는 경우가 더 나쁩니다.
다른 한편으로, 마이그레이션과 같이 롤백이 과감하지 않은 업그레이드, 롤백, 롤 포워드 방식을 고려할 수 있습니다. 예를 들어, 업그레이드는 널 입력 불가능 필드를 추가 할 수 있습니다. 롤백하면 이전 앱이 신경 쓰지 않도록 null을 허용합니다. rollforward는 널 (null) 필드를 채우고 널 (null)이 불가능한 상태로 만듭니다.
이것은 데이터를 유지하지만 코딩과 테스트가 복잡합니다 (슬프게도 자동 통합 테스트는 거의 존재하지 않으며 수정하는 동안 문제가 있습니다).
이와 관련된 문제를 완화 할 수있는 안전한 방법이 있습니까? 고려해야 할 다른 옵션이 있습니까? 나에게 고통을 덜어 줄 수있는 나쁜 경험이 있습니까?