2013-06-10 3 views
0

.csv 파일로 변환 한 Excel 파일을 사용하여 데이터를 postgres 데이터베이스로 업로드하려고합니다. 내 .csv 파일은 간단한 테스트 파일로 하나의 데이터 행만 포함됩니다.이 행에는 모두 텍스트로 서식이 지정된 셀과 내 데이터 모델의 열과 일치하는 제목이 있습니다.오류 .csv 파일을 pgsql로 가져 오기

class Publication(models.Model): 
    title = models.CharField(max_length=200) 
    journalists = models.ManyToManyField(Journalist, blank=True) 
    email = models.EmailField(blank=True) 
    tags = models.ManyToManyField(Tag, blank=True, related_name="publications") 
    url = models.URLField(blank=True) 
    notes = models.CharField(max_length=500, blank=True) 
    image_url = models.URLField(blank=True) 
    media_kit_url = models.URLField(blank=True) 

내가 psql의로 가서 다음 명령을 입력합니다 :

내가 같은 외모에 데이터를 업로드하려고 시도하고 데이터 모델은

\copy apricot_app_publication from '~/Desktop/sampleDBPubs.csv'; 

내가 다시 다음과 같은 오류가 발생합니다 :

ERROR: invalid input syntax for integer: "title,url,email,media_kit_url,notes,tags,image_url,journalists" 

CONTEXT: COPY apricot_app_publication, line 1, column id: "title,url,email,media_kit_url,notes,tags,image_url,journalists" 

동일한 질문을 다루는이 질문을 Importing csv file into pgsql으로 보았지만 nswer는 오류가 "정수가 아닌 정수 필드에 입력하려고합니다 ..."라고 말했지만 데이터 모델에는 정수 필드가 없기 때문에 오류를 해결하는 방법을 모르겠습니다. 발행물.

누구든지 문제의 원인을 제안 할 수 있습니까?

+0

'journalists = models.ManyToManyField (저널리스트, 빈 = True)'분리 된 테이블에서 기자의 ID를 참조하는 정수 필드의 냄새 ... –

+0

그 문제를 해결할 방법이 있습니까? 난 그냥 저널리스트에 임의의 정수를 추가하고 무슨 일이 일어날지를보고 태그 열을 시도하고 동일한 오류가 발생했습니다 – jac300

답변

2

방금 ​​내 질문에 답변했습니다. 내 장고 앱에는 다 대다 관계가있는 모든 것의 뒤에 자동으로 생성 된 id 열이 있습니다. 따라서 데이터베이스는 ID 인 .csv 파일에서 정수가 추가 될 것으로 예상하지만 내 .csv 파일에는 id 열이 없으므로 id가 자동으로 계속 나타나기를 원하는대로 추가하지 않으려합니다. 생성.

EX :

\copy apricot_app_tag(title) FROM '~/Desktop/Sample_Database_Files/tags.csv' with csv header 

'제목'이있다

이 해결하기 위해, 난 그냥 내 파일이 테이블 이름 뒤에 괄호에 대한 데이터를 제공 할 것입니다 열을 지정해야 업데이트하려는 태그 테이블의 유일한 열입니다.