Rails의 마이그레이션 관련 명령을 요약했습니다.

개발 환경



・Rails6.0.0

마이그레이션 파일 생성 및 테이블 작성



마이그레이션 파일 생성은 다음 두 가지 패턴입니다.



①모델을 생성하여 자동으로 만들어지는 경우

【명령】rails generate model 모델명
이렇게하면 "db/migrate"에 자동으로 마이그레이션 파일이 생성됩니다.

② 스스로 만드는

기존 테이블에 열을 추가하려는 경우 등.
(예) users 테이블에 name 컬럼 (형 : string)을 추가하고 싶은 경우
【명령】rails generate migration add_name_to_users name:string

테이블 만들기



【명령】rails db:migrate
이제 마이그레이션 파일의 내용이 테이블에 반영됩니다.
결과는 Sequel Pro 등으로 데이터베이스를 갱신해 확인할 수 있다.

덧붙여서 터미널상에서 마이그레이션 파일이 테이블에 반영되어 있는지 확인할 수도 있다.
【명령】rails db:migrate:status
実行結果
「Status」가 「up」이 되어 있으면 테이블에 반영되고 있는 상태, 「down」이 되어 있으면 아직 migrate 되어 있지 않은 상태입니다.

마이그레이션을 취소하고 싶을 때



개발 중에 마이그레이션 파일의 편집이 완료되지 않은데 rails db:migrate를 미리 실행해 버린 경우 등.
당황하지 않고 다음 명령을 실행합시다.
【명령】rails db:rollback

그러면 위 이미지의 "Status"부분이 "up"에서 "down"으로 변경되고 migrate 전에 상태로 돌아갑니다. 이제 마이그레이션 파일을 다시 편집할 수 있습니다.

※엄밀하게는 마이그레이션 파일은 편집하려고 하면 언제든지 편집할 수 있습니다만, 「up」상태의 마이그레이션 파일을 편집해 버리면 에러의 원인이 되므로 반드시 rollback하고 나서 편집해, 다시 migrate 합시다.

"업"상태의 마이그레이션 파일을 삭제하면?



① 삭제된 파일을 대체하는 임시 마이그레이션 파일 생성



rails db:migrate:status를 실행하고 삭제된 파일의 "Migration ID"를 확인한 후 동일한 ID를 가진 마이그레이션 파일을 작성합니다.
파일명: 「(MigrationID).sample.rb」등

② 이하의 커맨드를 실행할 수 있게 되므로 실행.



【명령】rails db:rollback

③ 이하의 커맨드로 마이그레이션 상태를 확인.



【명령】rails db:migrate:status
①에서 임시 작성한 마이그레이션 파일의 「Status」가 「down」으로 되어 있는 것을 확인할 수 있다.
이 시점에서 임시 작성한 파일을 삭제합니다.

이제 테이블과 마이그레이션 상태를 일치시킬 수 있습니다!

좋은 웹페이지 즐겨찾기