본문 바로가기
코딩/SQL, Mysql

[Mysql] (1054, "Unknown column in 'field list'") 오류해결

by JuBro 2024. 2. 5.
728x90

현재 상황은 

django를 사용하고 있고,

AWS E2C로 DB 서버만 띄워놓은 상태이고,

팀원들과 공유를 하려고 하니 

(1054, "Unknown column 'fundings_funding_msg.written_date' in 'field list'")

다음과 같은 에러가 발생했다.

 

 

테이블을 찾아가보니 진짜로 written_date라는 column이 없었다.

 

 

 

장고 모델에는 다같이 있는데,,

다같이 migrate 했을텐데 뭐가 문제일까..??

 

계속 추가 마이그레이션을 해봐eh, written_date cloumn 자체를 못읽는것같아 모델 코드를 다시 보았다.

 

 

 

 

  1. auto_now_add=True:
    • auto_now_add를 True로 설정하면 해당 필드가 객체 생성 시 현재 날짜와 시간으로 설정된다는 의미입니다.
    • 일회성 초기화 역할을 하며 객체가 처음 저장될 때 필드 값을 현재 타임스탬프로 설정합니다.
  2. auto_created=True:
    • auto_created 속성은 DateTimeField와 함께 사용되지 않습니다. 이는 일반적으로 models.ForeignKey 필드와 연관되어 있으며 외래 키 관계가 모델에 명시적으로 정의되지 않고 Django에 의해 자동으로 생성되었음을 나타내는 데 사용됩니다.
    • DateTimeField의 경우 의도된 동작에 대해 auto_now_add=True를 사용해야 합니다.

auto_created는 db에 생성여부를 알려주는건데,

auto_now_add=True, auto_created=True라면 DB에 접근할때마다 자동으로 생성해라 라는 뜻인데, 그렇게 된다면 DB 생성할 그 당시에는 column이 없어서 오류가 발생하는 것 같다.

 

그래서 auto_created를 지우고 다시 migration!

 

makemigrations 다시 해줬는데

 

 

전 마이그레이션이랑 꼬였는지 중복 column이 있다고 한다.

 

중복 column이 너무 많아서 migration 단계에서 꼬인것 같다

 

 

결국 db 날리고 다시 만들어서 다시 migration했다...ㅎㅎ;

728x90