http://www.redmine.org/projects/redmine/wiki/RedmineUpgrade

업그레이드

레드마인 새 버전이 출시됐거나 현재 사용하는 버전에 존재하는 버그를 수정되었을 경우 현재 사용하는 레드마인을 업그레이드 할 필요를 느낄수 있다.

설치된 레드마인을 어떻게 업그레이드 해야 하는지 알아 보자.

먼저 레드마인이 요구하는 루비 인터프리터나 루비온 레일스 프레임워크, 지원하는 DBMS 가 달라졌을지 모르므로 새 버전이 지원하는 환경을 확인하고 바뀌어야 하는 부분이 있으면 먼저 업그레이드해야 한다.

자세한 사항은 레드마인 홈페이지의 "Requirements" 를 참고하자.

요구사항이 충족되었다면 기존 레드마인 데이타를 mysqldump 명령어를 사용하여 백업해 놓자. 

mysqldump -u redmine -pmy_password redmine > redmine_backup.sql

이제 업그레이드할 준비가 끝났다. 

  1. 서브버전 저장소의 소스를 업데이트 한다.

    svn update

  2. 번들 gem 들을 업데이트 한다.

    bundle update

  3. 데이타 베이스 스키마가 변경 되었을수 모르므로 데이타 마이그레이션을 실행한다.

    bundle exec rake db:migrate RAILS_ENV=production

  4. 플러그인을 설치했다면 플러그인도 이관되어야 한다.

    bundle exec rake redmine:plugins:migrate RAILS_ENV=production

  5. 기존 캐쉬 데이타와 세션 정보를 삭제한다.

    bundle exec rake tmp:cache:clear bundle exec rake tmp:sessions:clear

  6. 레드마인을 재구동하면 업그레이드가 완료된다. 구동후 "관리" 메뉴에 들어가서 새롭게 추가된 기능이 있는지 확인하고 설정이 필요하다면 설정해 준다.

    ./redmine_unicorn.sh restart

백업

레드마인은 프로젝트의 모든 이력이 남는 가장 중요한 시스템이므로 백업에 신경써야 한다.

레드마인 백업은 DBMS 백업과 첨부 파일 백업으로 나눌 수 있으며 DBMS 백업은 간단하게는 mysqldump 명령어를 cron 을 이용하여 주기적으로 해주는 방법이 있다.

먼저 다음 mysqldump 를 실행하는 redmine_dump.sh 스크립트를 하나 작성하자.

#!/bin/sh

## yyyy-mm-dd_hh:mm format
TIME=`date "+%Y-%m-%d_%H:%M"`

mysqldump --single-transaction -u redmine -pmy_password redmine >  /var/redmine/db-backup/${TIME}- redmine_backup.sql

TIME 은 현재 yyyy-mm-dd_hh:mm 형식으로 백업 시간을 담게 되는 변수로 백업 파일 이름에 시간을 포함하기 위한 용도이다.

편집이 끝났으면 chmod +x redmine_dump.sh 로 실행 속성을 부여하고 sql 이 백업되는 경로인 /var/redmine/db-backup/ 를 생성하자. db-backup 디렉터리의 소유자는 redmine_dump.sh 를 실행하는 계정이어야 한다.

이제 crontab -e 명령어로 스케줄러에 위 스크립트를 연결하여 레드마인 DB 데이타를 백업하면 된다. 다음은 오전 9시부터 저녁 7시까지 3시간마다 백업하는 예제이다.

0 9-19/3 * * *  /usr/local/bin/redmine_dump.sh

첨부 파일 백업은 별도의 전문 백업 솔루션이 없다면 rsync 를 사용하면 되며 config/configuration.yml 파일내에 attachments_storage_path 를 레드마인 설치와 분리해 놓았다면 그 경로를 백업하고 아니면 레드마인 설치 디렉터리내 files 경로를 백업하면 된다.

백업을 위해서는 다음  rsync 명령어를 구동하여 원격지에 백업되는지 확인해 보고 crontab 에 연결해 보자. 사전에 원격지에는 redmine 이라는 계정을 생성하고 /var/redmine 폴더가 존재해야 한다.

rsync -avz /var/redmine/files redmine@backup.example.com:/var/redmine/files

rsync -avz /var/redmine/db-backup redmine@backup.example.com:/var/redmine/db-backup

rsync 로 백업이 정상적으로 되었다면 위 명령어를 crontab 에 연결하여 주기적으로 자동 실행 되도록 독자들의 환경에 설정해 보자.

rsync 로 원격지에 백업시 로그인 암호를 넣기 어려우므로 ssh 키쌍을 생성하여 원격지에 등록해 놓아야 하며 자세한 항목은 "4.9.2 암호 입력없이 원격지에 연결" 항목을 참고하자.

마치며

프로젝트를 진행하면서 발생하는 이슈들은 계속 상태가 변하며 이슈 관리 시스템은 이를 관리하고 추적하기 위한 필수 인프라 시스템이다.

레드마인은 오픈소스 이슈관리 시스템의 대표적인 제품으로 깔끔하고 미려한 UI,  버전관리 시스템 연동, 작업 흐름 수정 커스터마이징등 이슈 관리와 프로젝트 관리에 꼭 필요한 모든 기능을 제공하는 훌륭한 제품이다.

아직 이슈 관리 시스템을 사용하고 있지 않다면 꼭 도입하기를 권장하며 도입 검토시 레드마인을 높은 순위로 검토해 볼 필요가 있다. 레드마인을 활용해 독자들의 프로젝트 및 이슈를 잘 관리하여 좋은 결과물이 나오기를 기대해 본다.