배포중인 서비스에 db table 변경 적용시 고려해야 할 사항

inho ha·2022년 3월 29일
0

db의 table을 수정하고 관련 코드를 수정하여 이를 배포중인 서버에 적용하려할때 그냥 무지성으로 동시에 push 해버린다면 수정된 코드와 db의 sync가 맞지 않아서 서버가 터질 수 있습니다.
migration을 적용시키기 위해서는 migration file을 push한 뒤에 적용을 시켜줘야하는데 수정된 관련 코드를 함께 push 한다면 migration이 적용되기 전까지는 db와 code가 sync가 맞지 않아 문제가 발생할 수 있습니다.

이때 고려해야 하는 것은 migration을 먼저 적용 시킬지 혹은 수정된 관련 코드를 먼저 push할지 입니다.

table에서 컬럼을 추가하거나 db에 table을 추가한 경우

이때는 migration을 먼저 적용해야 합니다.
없는 컬럼에 접근하려하면 문제가 되지만 있는 컬럼에 접근하지 않는 것은 문제가 발생하지 않기 때문입니다.

table에서 컬럼을 삭제하거나 db에 table을 삭제한 경우

이때는 수정된 관련 코드를 먼저 push해야 합니다.
migration을 먼저 적용시키면 기존의 코드는 삭제된 컬럼에 접근하여 서버가 터질 수 있습니다.
따라서 수정된 관련 코드를 먼저 push하고 이후 migration을 적용 시키는 것이 안전합니다.

table에서 컬럼 삭제와 추가 모두 된 경우

migration file을 2가지로 생성합니다.
하나는 컬럼을 추가하는 migration file 이고
다른 하나는 컬럼이 추가된 db에 컬럼을 삭제하는 migration file입니다.
이후 컬럼을 추가하는 migration을 적용시킨뒤
수정된 코드를 push 하고
컬럼을 삭제하는 migration을 적용하면 안전하게 migration 적용이 가능합니다.

profile
iha / ian / inho ha

0개의 댓글