2016-10-18 1 views
0

저희 팀과 저는 현재 Git을 사용하여 버전 관리를 관리하고 있습니다. 마이 그 레이션리스 시스템에서도이 소프트웨어를 사용하기를 원하지만, 우리가 가지고있는 문제는 (MySQL) 데이터베이스에 임베드 된 절대 URL의 문제입니다. 공유 데이터베이스를 사용하면 로컬 환경이 손상됩니다. 또 하나의 문제는 동일한 테이블에 대해 수행 된 변경입니다.마이그레이션없는 시스템에서 데이터베이스를 처리하는 방법은 무엇입니까?

mysqldump을 통해 작업을 시도한 다음 모든 절대 URL을 sed (으)로 바꾸려고했지만 매우 까다 롭습니다. 우리는 더 좋은 방법이 있는지 궁금해하고 있습니다.

나는 우리가이 질문을 한 첫 번째 사람들이라고 상상할 수 없습니다. 그러나 나는 절대적으로 가장 가난한 조사 기술을 가지고 있거나 이것에 대한 많은 정보가 전부는 아닙니다.

아무도 올바른 방향으로 나를 가리킬 수 있습니까?

감사합니다.

+0

"마이 그 레이션리스 시스템"을 처음 접한 적이없고 Google 만이 질문을 찾습니다. 정의 해 주시겠습니까? 질문에 대한 답변을 얻으려면 http://stackoverflow.com/questions/115369/do-you-use-source-control-for-your-database-items 닫기를 고려하십시오. –

답변

0

데이터베이스의 URL을 업데이트하려면 단순히 REPLACE 기능을 사용하는 UPDATE 쿼리를 사용하십시오.

UPDATE your_table SET url = REPLACE(url, 'http://example.com/', '/'); 

은 (이 작업을 수행하기 전에 백업을하는 것을 잊지 마십시오.)


내가 간단한 업그레이드 스크립트 약간 스마트 런처를 추천 한 버전에서 다른 버전으로 데이터베이스 스키마를 업그레이드하려면. 요점은 각 개발자가 자신의 데이터베이스를 가지고 있으며 데이터베이스 스키마를 변경할 때 SQL 스크립트를 사용하여이를 수행한다는 것입니다. 스크립트는 소스 코드의 변경과 함께 커밋됩니다. 나중에 다른 개발자가 새 버전을 가져 오면 새 마이그레이션 스크립트를 실행하여 데이터베이스를 업그레이드합니다.

저는 많은 프로젝트에서이 좋은 결과를 얻었습니다. 내 Changelog.sql 도구를 살펴보십시오.

관련 문제