2019. 10. 3. 23:54ㆍTIL
오늘 한일
크롤링한 데이터들을 DB에 저장하려고 하는데 계속 에러가 발생하였다. 하나를 해결하면 또 다른 에러가 나고 에러의연속 이였다.
그런데 신기한건 쪽같은 코드인데 지우고 그대로 복붙을 하고 나니 해결이 되는 경우도 있었다. 정말 허탈 하였다.
type error 가 나는 경우 였는데 입력하는 데이터를 int() 값을 줘보기도 하고 포멧팅 값을 바꿔줘도 계속 똑같은 에러가 났다.
검색을 했을때 mysql 5.7 버전 부터는 strict mode가 디폴트 값으로 설정이 되어 이걸 주석처리 하던지 없애줘야 한다고 하였다.
우선 첫 번쨰로 시도한 방법은 my.cnf 파일을 찾아서 직접 변경하는 것이다. 이 파일은 총 2개가 있어서 둘다 바꿔줘야 한다.
하나는 /usr/local/etc/my.cnf 에 있었고 하나는 좀 복잡한 경로에 있었다.
두번째는 mysql 에서 select @@sql_mode 로 확인을 한 뒤 set sql_mode = " " 빈값을 설정해 주는 방법을 사용하 였다.
하지만 에러는 해결 되지 않았다.
그래서 db에 들어가는 값들중에 어디서 부터 문제인지 주석처리를 하며 확인을 하다가 아예 그냥 "a" 를 집어 넣어 보았는데 들어가 졌고 다시 하나하나 주석 처리르 해제하면서 확인을 하였더니 에러 없이 잘 들어가졌다. 왜 이게 해결이 됐는지 아직도 의문이다.
Mysql dateTimeField 한국 시간으로 설정하는 방법
Sitting.py 설정을 변경해준다.
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'Asia/Seoul'
USE_I18N = True
USE_L10N = True
USE_TZ = False
USE_TZ가 True일 때는 templates, forms에서의 datetime에만 내가 설정한 TIME_ZONE이 적용된다. 따라서 models의 datetime에는 이 부분이 적용되지 않았기 때문에 원래의 default time zone인 'UTC' 값으로 계속 설정되었던 것이다.
나는 models에서도 내가 설정한 TIME_ZONE 값을 적용하고 싶기 때문에 이 부분을 False로 바꾸어 주었다.
날짜 시간 모듈 활용하기
https://dojang.io/mod/page/view.php?id=2463
'TIL' 카테고리의 다른 글
[TIL]10.07 기업협업 - import error , API (0) | 2019.10.07 |
---|---|
[TIL]10.06 기업협업 - API (0) | 2019.10.06 |
[TIL] 10.02 기업협업 - DB 최종/ 쿼리셋 (0) | 2019.10.02 |
[TIL] 09.29 기업협업 (0) | 2019.09.29 |
[TIL] 09.27 기업협업 - DB테이블, crawling error (0) | 2019.09.28 |