저는 DevOps에 익숙하지 않습니다. CI (Continuous Integration) 프로젝트를 구성하려고 할 때 아직 솔루션을 찾을 수없는 문제에 직면하고 있습니다. DB의 최신 버전에 젠킨스뿐만 아니라 개발자가 액세스 할 수 있도록 가지고있는 설정에서 데이터베이스 파일을 관리하는 가장 좋은 방법이 무엇인지 알고 싶습니다.Jenkins와의 지속적인 통합을 통해 데이터베이스를 관리하는 방법
비슷한 질문은 아래의 스레드와 같이 다양한 스레드에서 처리되었습니다. 그러나 아무도 내 상황과 관련된 질문에 대답하지 못했습니다.
- Database CI with Jenkins: A step by step tutorial
- How can I put a database under git (version control)?
- Using version control (Git) on a MySQL database
- Is backing up a MySQL database in Git a good idea?
설정 여기
내 설치는 모습입니다 같은 :
,363,210- 언어 : 파이썬 3.5 (unittests 등 포함)
- 데이터베이스 : MySQL의 - 하루 (안 스키마)
- 버전 제어 한 번 데이터 업데이트 : 힘내
- 코드 호스팅 :의 Bitbucket
- 개발 OS : 윈도우 10
- CI 기계 : 젠킨스 내가 원산지/마스터를 업데이트 할 때마다, 젠킨스가 실행되는 등의 CI를 설정 한
: 리눅스 (우분투 16.04.1)
편집 내 데이터베이스가 무엇인지 명확히하기 위해 일종의 일일 판매량 또는 일일 시장 업데이트라고 가정합니다. 하루에 한 번씩 데이터베이스를 업데이트하는 코드와 데이터 분석을 수행하는 프로그램이 있습니다.
문제
나는 데이터베이스의 버전 관리에 대해 우려하지 않다. 다른 말로하면, 나는 이틀 전에 나의 DB가 무엇인지 신경 쓰지 않는다. 그러나 데이터베이스가 매일 업데이트되므로 Jenkins뿐 아니라 다른 개발자 시스템에서도 테스트가 실행될 때마다 최신 정보에 액세스해야합니다. 지금까지 읽은 것부터, Git 저장소에 데이터베이스를 포함시키는 것은 좋지 않습니다. 변경 사항을 추적하는 데 신경 쓰지 않기 때문에 그렇게하지 않을 것입니다. 그래서 문제는 어떻게 데이터베이스를 저장하고 프로젝트에 통합해야합니까?
일부는 Dropbox 또는 다른 도구를 사용하여 어디서나 DB에 액세스 할 것을 제안했습니다. 이것이 최선의 접근 방법입니까? 그렇다면 Dropbox에 정확히 무엇을 보관해야합니까? 실제 데이터베이스 (* .db) 파일 및 폴더?MySQL에서 이러한 것들은 MySQL의/data/폴더에 중앙 집중식으로 저장되어 있으며 Dropbox 같은 다른 폴더에 저장하는 방법을 모릅니다.
다른 사람은 DB 덤프를 유지할 것을 제안했습니다. 그 과정은 무엇이되어야 하는가? 데이터베이스의 일일 변경 후 덤프를 생성하고 .txt 덤프 파일을 Dropbox에 보관 하시겠습니까? Jenkins는 매번이 덤프 파일에서 DB를 어떻게 다시 작성합니까?
어딘가에 프로덕션/마스터/라이브 데이터베이스가 있다는 것을 잘 알고 있으며 개발 데이터베이스 서버에 매일 데이터를 업데이트하도록 하시겠습니까? –
대답은 '예'라고 생각합니다. 귀하의 질문에 대답하기 위해 편집 : 내 DB를 일일 매출 수치 또는 일일 시장 업데이트 일 수 있습니다. 하루에 한 번씩 데이터베이스를 업데이트하는 코드와 데이터 분석을 수행하는 프로그램이 있습니다. – hANI
나는 아직도 그 질문을 이해하지 못한다. 데이터가있는 데이터베이스 서버가 있다면 무엇이 더 필요합니까? (필자는 비슷한 유스 케이스를 얻지 못했을 것입니다. :) –