Relation btw Django models field n MySQL

gurumagineer·2020년 3월 12일
0

crawling bulk data를 MySQL table에 밀어넣다가 신기한 점을 발견했다.
귀납적 이야기다.

기존에 작성한 Models의 한 필드에서 max_length값이 50이라 그것보다 긴 값이 안 들어갔다.

지훈님이 max_length 제한이 있어도 더 긴 값도 들어갈 수 있다고 한 게 생각나서 영보님께 물어보니 그건 sqlite에서였기에 가능한 거고, MySQL에서는 안되는 거라고 하셨다.

실제로 그 필드의 max_length = 200으로 바꾸고 makemigrations와 migrate를 하니 무리없이 data가 db에 들어갔다. 또한 db에서 explain 명령어를 쳐보니 varchar(200)으로 바뀌어있었다.

하지만 만약 models의 필드 하나 이상을 없애면 어떻게 될까.
그 경우에는 makemigrations와 migrate를 다시 해주어도 django 내에서의 migrate 파일 값만 바뀐 것이고 MySQL 내부의 db에서는 변경 전의 필드가 그대로 있다. 따라서 db를 밀어주고 다시 django와 연동을 해주어야 한다.

profile
무엇을 모르는지 모르는 상태에서 무엇을 모르는지 아는 상태가 되어가는.

0개의 댓글