2017-12-22 2 views
0

mySQL 데이터베이스에 utf8mb4 인코딩을 사용하고 있습니다. 키릴 문자가있는 경우에도 내 장고 앱이 올바르게 작동합니다.Django 2.0 - dumpdata에서 fixtures를 사용하여 테스트하면 utf8mb4 인코딩 오류가 발생합니다.

하지만 ./manage.py test <module>을 실행하고 동일한 데이터베이스에서 덤프 된 조명기를로드하려고하면 인코딩과 관련하여 오류가 발생합니다. 오류 중 하나는 다음과 같습니다

Could not load advert.Region(pk=1): (1366, "Incorrect string value: '\\xD0\\x9F\\xD0\\xBB\\xD0\\xBE...' for column 'region_name' at row 1")

는 그럼 난 장고 설정에서 DEFAULT_CHARSET을 설정하고 나는기구의 형식으로 XML로 지정한 볼 수 있듯이 오류가 LookupError: Problem installing fixture '<path>/test_db_one.xml': unknown encoding: utf8mb4

로 변경 그것은 인코딩을 잘 처리한다.

DEFAULT_CHARSET = 'utf8mb4' 
DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.mysql', 
     'NAME': 'autoplusplus_dev', 
     'USER': 'autoplusplus_django', 
     'PASSWORD': '1029', 
     'HOST': 'localhost', 
     'PORT': '3306', 
     'STORAGE_ENGINE': 'INNODB', 
     'OPTIONS': {'charset': 'utf8mb4'}, 
     'TEST_CHARSET': 'utf8mb4', 
    } 
} 

내가 mysqlclient 1.3.12 당신은 Пло을 기대하고

답변

1

Django가 UTF-8로 생성하는 파일의 인코딩을 변경하면 문제가 해결됩니다.

0

를 설치 한 :

내 설정 모듈은 다음과 같은 속성이 있습니다? 그렇다면 합리적인 UTF-8 인코딩입니다.

"unknown encoding : utf8mb4"- Django 및/또는 MySQL의 골동품 버전이 있습니까? 어떤 버전을 실행하고 있습니까?

테이블 정의는 어떤 모양입니까? 어쩌면 열은 utf8 또는 utf8mb4 대신 latin1 일 수 있습니다.

한편, MySQL의 CHARACTER SET utf8; 이 이 될 수 있습니다.

+0

도움 주셔서 감사합니다. 내가 XML 파일 자체의 인코딩을 변경해야한다는 것이 드러났으며이 문제가 해결되었습니다. –

+0

흠 ... 나는 XML이 UTF-8이어야한다고 생각했다. –

관련 문제