manage.py dumpdata --format xml --some-more-parameters
을 사용하여 데이터베이스의 전체 덤프를 xml로 내보내십시오. 데이터베이스는 MS SQL 서버이며 pyodbc를 드라이버로 사용하고 있습니다. dumpdata 명령은 PowerShell을 사용하여 실행되며 Django 1.7은 인수 (dumpdata
명령)를 지원하지 않으므로 출력을 PowerShell을 사용하여 파일로 리디렉션합니다.Windows 용 Django 1.7 dumpdata는 유니 코드 문자를 암호화합니다
유감스럽게도 데이터베이스에는 유니 코드 문자 (예 : country \ xd6sterreich)가 포함되어 있으며 이러한 문자는 내보내기 파일로 스크램블됩니다.
다음은 작동하지 않았다 무엇 :이 명령의
./manage.py dumpdata --format xml > export.xml
./manage.py dumpdata --format xml | out-file -encoding utf8 export.xml
./manage.py dumpdata -format xml | out-file -encoding ANY_OTHER_SUPPORTED_ENCODING export.xml
없음이 작동하지 않습니다. 움라우트와 악센트가 뒤섞이고 추가적으로 > export.xml
메서드는 파일에 BOM
을 잘못 입력하여 다른 호스트에서이 파일을 가져 오려고 시도 할 때 ./manage.py loaddata export.xml
이 UnicodeDecode 오류 메시지로 중단됩니다.
데이터를 내보내고 특수 문자를 보존 할 수있는 방법에 대한 제안 사항이 있습니까? json 또는 yaml serializer를 사용할 때도 동일한 문제가 발생합니다.
이 질문에 대답한다! 아래를 참조하십시오. 내 자신의 대답을 받아 들일 수 있기 전에 2 일을 기다려야하는 것 같아 ... – Flurin
'start-process python.exe -passthru -argumentlist $ params'가 Powershell 스크립트가 변경되지 않은 stdout에 접근 할 수있게 해주는 지 궁금합니다. 어떤 것이 든,'-redirectstandardoutput'으로 stdout을 문자열로 얻을 수 있습니다. – Vesper
감사합니다. 다음에 서버에 액세스 할 때 사용해 보겠습니다. – Flurin