postgres db
에 대한 일부 항목에 대한 데이터를 저장하는 djano web app
가 있습니다 .db의 데이터를 json file
로 복사하려면 일반적으로 python manage.py shell
를 사용하고 django 튜토리얼에서 설명한 직렬화 API를 사용하십시오.psycopg2.ProgrammingError, postgres에서 django app의 데이터를 직렬화하기위한 스크립트 실행
>>>python manage.py shell
...
In[8]:from myapp.models import MyFirstModel
In[9]:data = serializers.serialize("xml", MyFirstModel.objects.all())
In[10]:print data
이 출력을 텍스트 파일로 복사하고 json으로 저장하십시오.
이 작업을 수행 할 스크립트를 작성하고datacopy.py ........
...
filename = os.path.join(dirpath,basefilename+".json")
def write_data_to_file():
from django.core import serializers
XMLSerializer = serializers.get_serializer("json")
xml_serializer = XMLSerializer()
out = open(filename,"a")
from django.contrib.auth.models import User
from myapp.models import MyFirstModel
from myapp.models import MyNextModel
xml_serializer.serialize(User.objects.all(), stream=out)
xml_serializer.serialize(MyFirstModel.objects.all(), stream=out)
xml_serializer.serialize(MyNextModel.objects.all(), stream=out)
if __name__ == '__main__':
write_data_to_file()
bash 셸에서
>>python datacopy.py
을 시도했습니다.
그러나 이것은 사용자 모델의 데이터 만 기록하고 앱에서 만든 모델을 복사하지 못합니다.
오류 메시지
Traceback (most recent call last):
File "datacopy.py", line 29, in <module>
write_data_to_file()
File "datacopy.py", line 23, in write_data_to_file
xml_serializer.serialize(MyFirstModel.objects.all(), stream=out)
File "/home/me/Django-1.1.1/django/core/serializers/base.py", line 38, in serialize
for obj in queryset:
File "/home/me/Django-1.1.1/django/db/models/query.py", line 106, in _result_iter
self._fill_cache()
File "/home/me/Django-1.1.1/django/db/models/query.py", line 692, in _fill_cache
self._result_cache.append(self._iter.next())
File "/home/me/Django-1.1.1/django/db/models/query.py", line 238, in iterator
for row in self.query.results_iter():
File "/home/me/Django-1.1.1/django/db/models/sql/query.py", line 287, in results_iter
for rows in self.execute_sql(MULTI):
File "/home/me/Django-1.1.1/django/db/models/sql/query.py", line 2369, in execute_sql
cursor.execute(sql, params)
File "/home/me/Django-1.1.1/django/db/backends/util.py", line 19, in execute
return self.cursor.execute(sql, params)
psycopg2.ProgrammingError: relation "myapp_myfirstmodel" does not exist
python manage.py shell
을 사용할 때 세 가지 모델의 데이터를 복사 할 수 있습니다. 왜이 오류는 bash에서 스크립트를 실행할 때 발생합니까? myapp in PYTHONPATH
내가 그것을 생각하기 때문에 생각 나게에 대한 DJANGO_SETTINGS의 ..thanks입니다 :
둘째 아마 더 나은 파일의 헤드로 이동하는 함수 내부에 수입을하고있는 이유는,이 –