• 카테고리

    질문 & 답변
  • 세부 분야

    데이터베이스

  • 해결 여부

    미해결

[마이그레이션 질문] 테이블 데이터 백업

22.04.14 14:26 작성 조회수 169

0

| PlayerId | Name |

        1              "1"      

        2              "2"      

        3              "3"      

이렇게 두 개의 컬럼이 존재하는 테이블을 마이그레이션 해두고("m-1"이라 하겠습니다)

아래와 같이 GuildId 컬럼 추가 후 데이터 적용한 상태를 마이그레이션("m-2"라 하겠습니다) 했습니다.

| PlayerId | Name | GuildId |

        1              "1"            1

        2              "2"            1

        3              "3"            1

 

이후,

m-2(최신) > m-1 > m-2

와 같은 순서로 마이그레이션을 적용할 경우, 마지막 m-2에서GuildId 컬럼의 데이터 값이 기본값인 0으로 세팅되는데,

| PlayerId | Name | GuildId |

        1              "1"            0

        2              "2"            0

        3              "3"            0

 

m-2(최신) > m-1 변경 시 기존 m-2 상태의 테이블 데이터를 백업하고 예제와 같이 컬럼이 없었던 때의 마이그레이션을 적용한 후 다시 돌아왔을 때 기존 데이터가 유지되는 기능은 없을까요?

| PlayerId | Name | GuildId |                (m-2) 

        1              "1"            1

        2              "2"            1

        3              "3"            1

                          |

         | PlayerId | Name |                           (m-1) 

               1              "1"      

               2              "2"      

               3              "3"    

                          |

| PlayerId | Name | GuildId |                (m-2)                

        1              "1"            1

        2              "2"            1

        3              "3"            1

 

답변 1

답변을 작성해보세요.

3

데이터가 이미 변경된 상황에서 
DB Migration을 한다고 데이터까지 변경되진 않습니다.
실제로 라이브 서비스에서 저런 경우에는
SQL 스크립트를 만들어서 먼저 돌리는 식으로 선행 작업을 합니다.
DB가 엄청 커지면 SQL 스크립트 실행만 몇십문 걸리기도 합니다.