2012-08-10 2 views
1

CSV를 구문 분석하고 그 값을 MySQL 테이블에 삽입하기위한 Python 스크립트를 작성했습니다. 같은 구문 분석 CSV 및 삽입 부분은 다음과 같습니다 우리는 MySQL은 테이블 create 명령을 사용하여 수동으로 테이블을 작성하는 경우, 그것은 완벽하게 작동하고파이썬 스크립트가 레일즈 마이 그 레이션 테이블에서 작동하지 않습니다

csv_data = csv.reader(open(file_path, "rb")) 
data_list = [] 
count = 0 
##Loop for inserting data to table in baches 
for row in csv_data: 
    data_row = [] 
    data_row.append(row[0]) 
    data_row.append(row[1]) 
    data_row.append(row[2]) 
    ##removing the fist row 
    if count == 0: 
     count += 1 
     continue 
    else: 
     data_row.insert(0,keyword_type) 
     sql_command = "insert into "+ table_name +"(keyword_type,old_keyword_id,old_keyword_name,master_keyword_name) values (\"" +data_row[0]+"\"," + data_row[1]+ ",\"" +data_row[2]+"\",\"" +data_row[3]+"\")" 
     cursor.execute(sql_command) 

.

하지만 이것을 레일스 환경에 통합하고 마이그레이션을 사용하여 만든 테이블에 데이터를 삽입해야합니다. 그러나 실행 후 프로그램이 성공적으로 실행되고 오류가 표시되지 않습니다. 그러나 데이터가 테이블에 입력되지 않습니다. 이게 문제 야.

감사 감사

+0

어디서 어떻게 테이블을 만들까요? –

+0

'sql_command' 문자열의 문법 오류가 복사/붙여 넣기 실수라고 가정하고 실제로 코드에 그렇게 쓰지 않았습니까? – Atli

+0

테이블은 레일 마이그레이션 기술을 사용하여 레일스 프로젝트 데이터베이스에서 생성되었습니다. – apr

답변

0

실행하여 수동으로 만든 테이블에 대해 "[TABLE_NAME] 설명"및 생성 한 레일에 대하여, 그 결과를 비교한다. 당신은 스키마에 차이가 있다는 것을 대부분 발견 할 것입니다. 그 후에 무엇을 해야할지 명확하지 않으면 여기에 결과를 게시하십시오.

관련 문제