2010-04-27 4 views
2

모든 MySQL 코드를 수동으로 파일에 복사 한 다음 해당 파일을 소스 제어에 넣을 수 있음을 알고 있습니다. 그러나 자동으로이를 수행 할 수있는 방법이 있습니까?소스 코드에 MySQL 코드를 넣는 방법은 무엇입니까?

나는 이것을 저장 프로 시저뿐만 아니라 테이블/이벤트/트리거 생성 스크립트에도 적용하려고한다.

답변

3

는 마이클의 답변에 따라, 지금까지 사용하고있는 솔루션입니다 :

#!/bin/bash 
BACKUP_PATH=/root/database_name 
DATABASE=database_name 
PASSWORD=Password 
rm -f "$BACKUP_PATH/*.sql" 
mysqldump -p$PASSWORD --routines --skip-dump-date --no-create-info --no-data --skip-opt $DATABASE > $BACKUP_PATH/$DATABASE.sql 
mysqldump -p$PASSWORD --tab=$BACKUP_PATH --skip-dump-date --no-data --skip-opt $DATABASE 
hg commit -Am "automatic commit" $BACKUP_PATH 
4

데이터 변경시 트리거를 만들면 일부 변경 내용이 자동으로 일부 소스 컨트롤에 저장됩니다. 그러나 이런 방식으로 구조 변경 (테이블, 저장 프로 시저 등)을 추적하는 자동 방법은 없습니다. 그래서 가장 좋은 방법은 데이터베이스를 덤프하고 소스 제어에 이러한 덤프를 저장하는 것입니다. 이 작업을 주기적으로 수행하여 작업을 자동화 할 수 있습니다.

+0

는 나도 몰라 ... 당신이 필요로 할 것입니다. MySQL 코드에 대해서만 말하고 데이터에 대해서는 언급하지 않습니다. 데이터베이스 덤프는 또한 원하는 스크립트를 내 보냅니다. 따라서 스크립트 만 내보내는 방법을 찾으면 작동 할 수 있다고 생각합니다. –

+2

그럼 저장 프로 시저/트리거 만 내보내고 싶습니까? 그렇다면'mysqldump --routines --no-create-info --no-data --no-create-db --skip-opt DATABASE'는 당신에게 맞는 명령입니다. –

+0

귀하의 솔루션을 사용하고 있습니다. 감사 –

1

정말 you'r 할 노력을 이해하지 마십시오. Liquibase에서

이봐, 아마 당신이 나를 이해하는 경우