이 질문은 내가 함께 일하고 있어요 개발 팀에 와서 우리가 정말 합의를 가져올 수 없습니다 :db가 항상 CI의 일부로 변경되어야합니까?
Should changes to the database be part of the CI script?
작업중인 응용 프로그램이 포함 된 데이터베이스를 가지고 있다고 가정. 나는 이것이 통합의 정의이기 때문에 그렇다고 생각합니다. 응용 프로그램의 일부를 포함하지 않으면 통합을 실제로 테스트하지 않습니다. 반대 의견은 CI 서버가 기본 프로젝트 설정이 제대로 작동하는지 확인하는 것입니다. 이는 근본적으로 최신 버전의 코드를 처녀별로 체크 아웃하는 것입니다.
이 질문에 대답하는 CI의 "모범 사례"문서가 있습니까? 이것은 CI에 열렬한 사람들 사이에서 논의되는 것입니까?
Martin Fowler's opinion on it:
일반적인 실수는 자동화 된 빌드 모든 것을 포함하지 않는 것입니다. 빌드에는 데이터베이스 스키마를 저장소 밖으로 가져 와서 실행 환경에서 실행하는 작업이 포함되어야합니다.
도구없이 db 마이그레이션을 수행 할 수있는 옵션이 많이 있다고 생각합니다. FluentMigrator, 점진적 업그레이드 스크립트 등등. K Scott Allen은 이에 대해 이야기하는 훌륭한 기사 모음을 가지고 있습니다. – jcollum