제공 : 한빛 네트워크
저자 : Bill Walton
역자 : 노재현
원문 : Cookin" with Ruby on Rails - May
[이전 기사 보기]
Cooking with Ruby on Rails - May(1)
Cooking with Ruby on Rails - May(2)

[그림 27]
스키마는 자동으로 버전 2로 변경이 된 걸 알 수 있어.

[그림 28]
데이터베이스도 역시 데이터의 손실 없이 변경된 걸 볼 수 있지.

[그림 29]
이제 다음을 수행해서 버전 1로 돌아가 보면

[그림 30]
스키마는 이번에도 자동으로 변경된 걸 알 수 있지.

[그림 31]
역시 데이터베이스에는 데이터의 손실 없이 변경이 잘 된 걸 알 수 있어.

[그림 32]
이제 다시 최신버전으로 마이그레이션 해보자구.

[그림 33]
스키마도 다시 변경되었어.

[그림 34]
물론 데이터베이스도 변경되었지.

[그림 35]
Paul : 네 알겠어요. 바로 Rails의 마이그레이션을 이용하면 데이터베이스를 버전 관리할 수 있다는 거네요. 이런 경우에 유용하겠네요. 어떤 고객이 버그 신고를 했는데, 버그 발생 이후 데이터베이스의 스키마가 변경되었을 때 바로 이 마이그레이션 기능을 이용하면 제 코드와 데이터베이스를 그 때 그 시점으로 바로 되돌릴 수가 있다는 거네요. 정말 좋은 기능인데요.
자 그럼 뭘 할까요? 여기까지 오느라고 데이터베이스가 좀 지저분해졌네요. 정작 보스가 요리법을 올린 사람에 대한 정보를 필요로 할지 안 할지도 알 수가 없고요. 지워 버릴까요?
CB : 물론 지울수는 있지만 조심해야 한다구. Rails는 동기화가 깨지게 될 경우 문제가 발생할 수도 있어. 가장 손쉽게 처음 상태로 되돌리는 방법은 초기 버전으로 마이그레이션을 하는 거지.

[그림 36]
정확하게 되돌려졌는지 확인하기 위해서 스키마를 보도록 해야해.

[그림 37]
데이터베이스도 마찬가지로 확인해야 되지.

[그림 38]
이제 마이그레이션 디렉토리를 탐색기로 보면

[그림 39]
우리가 추가했던 컬럼들에 대한 마이그레이션은 이제 필요없으니까 지워버리면 돼

[그림 40]
이제 깨끗하게 정리가 되었어. 이제부터는 이 버전 1을 기반으로 개발을 하면 되지.

[그림 41]
Paul : 와 정말 좋은데요. 좀 더 연습해 봐야겠어요. 아쉽지만 이제 다시 가봐야 겠어요. 피자 맛있었고요. 마이그레이션에 대해서 설명해 주셔서 감사합니다. 다음에 기회가 되면 단위 테스트에 대해서도 배울 수 있으면 좋겠네요.
폴은 돌아갔고 CB는 생각에 잠겼다. 미래에도 이렇게 Ruby on Rails를 이용해서 코딩을 할 수 있는 기회가 많이 있을까? 이렇게 즐기면서 보수도 받으면서 말이지. 어쨌든 지금은 할 일이 많으니 너무 좋은데. 피자까지 같이 있다면 더더욱 좋고.