[Alembic] 데이터베이스 초기 버전 revision

강버섯·2022년 1월 3일
0

FAST API⚡️

목록 보기
5/5

👉 발단

이전에 발생했던 DB 버전 관리를 위한 revision 파일의 꼬임 현상을 해결했는데, 이제는 alembic revision을 수행하면 table 생성에 대한 revision이 작성되지 않고 계속 pass로만 뜬다.

이전 문제👇
alembic 꼬아버린 문제

버전 관리 파일이 꼬인 것은 아닌데, 이제 테이블을 생성한 버전을 등록하고 싶으나 감지가 안되니 답답,,,,
직접 revision 파일을 작성해도 되지만 autogenerate를 통해 예쁘게 작성된 파일을 갖고 싶었다.

👉 문제 발생 이유

테이블이 데이터베이스에 이미 생성되어있는 상태였기 때문에, alembic은 추가로 테이블을 생성해야할 필요성을 찾지 못한 것이었다.
이전 문제를 해결하면서도 알게된 것이지만, alembic은 현재 데이터베이스의 상태와 작성된 코드를 비교하여서 revision 파일을 작성하는 것이기 때문에 이미 테이블이 존재하는 상태에서는 upgrade시 테이블 생성의 변화를 작성할 필요가 없던 것.

👉 해결

그럼 이제 테이블이 없으면 alembic이 생성을 하고자 할테니깐 데이터베이스에 존재하던 테이블을 먼저 삭제해줬다.
그리고는 alembic 버전을 base로 바꾸고 생성했던 revision 파일도 전부 삭제를 해준 후 다시 $> alembic revision --autogenerate 를 실행해줬다.
원하던 모양대로 upgrade시에는 table이 생성되고 downgrade시에는 table이 삭제되는 모양의 revision 파일을 얻을 수 있었다.

+) 해당 revision이 데이터베이스에 적용되기 위해서는 alembic upgrade를 해줘야만 적용이 되는 점을 잊지 말기!

profile
무럭무럭 버섯농장

0개의 댓글