code

장고: 단위 테스트 실행 중 작동 오류

starcafe 2023. 10. 20. 13:54
반응형

장고: 단위 테스트 실행 중 작동 오류

마리아DB 10을 이용한 장고 앱이 있습니다.단위 테스트를 실행하려고 하면 다음과 같습니다../manage.py test myapp

테스트 데이터베이스 구축이 실패하고 다음 오류가 발생합니다.

django.db.utils.OperationalError: (1709, 'Index column size too large. The maximum column size is 767 bytes.')

VARCHAR(200) 필드의 문자 집합(utf8)과 대조(utf8_general_ci)가 오류의 원인임을 이미 알고 있습니다.

영향을 받은 앱의 마이그레이션 파일을 모두 삭제하고 다시 실행해 보았지만 문제가 해결되지 않았습니다.(나는 파이썬과 장고가 처음인데, 그때는 좋은 생각이었던 것 같아요...)

제 질문은 다음과 같습니다.테스트 데이터베이스 구축을 완료할 수 있도록 이 오류(및 프로세스에서 발생할 수 있는 유사한 오류)를 수정/스킵하려면 어떻게 해야 합니까?

데이터베이스를 작성할 때는 다음을 사용해야 합니다.SET utf8 COLLATE utf8_bin

CREATE DATABASE mydatabase CHARACTER SET utf8 COLLATE utf8_bin

테스트 실행의 경우: db config add에

'TEST_CHARSET': 'utf8',
'TEST_COLLATION': 'utf8_general_ci',

작동하지 않는 경우: 구성 파일을 변경합니다.

#/etc/mysql/mariadb.conf.d/50-client.cnf
default-character-set = utf8 

#/etc/mysql/mariadb.conf.d/50-mysql-clients.cnf
default-character-set = utf8

... 데이터베이스를 다시 시작합니다.

언급URL : https://stackoverflow.com/questions/38881076/django-operational-error-while-running-unit-tests

반응형