PostgreSQLのデータベースをmognodbへコピー

6月1日のエントリで書いた件、スクリプトが間違っていました。最初にPostgreSQLからフェッチして、その後ループ。ループの中でデータフェッチをしていないからwhille()の終了条件にマッチせず、延々と最初にフェッチしたデータを突っ込んでいました。
なかなかデータインサートが終わらないなぁ。。。三時間たっても終わらないなぁ。いい加減、こりゃおかしいなぁと。

修正版はこちら。これはちゃんと動作します。

#!/usr/bin/python

import pymongo
import psycopg2
import datetime

def conv_date(data_tuple):
    data_list = list(data_tuple)                            #タプルをリストへ変換
    data_list[2] = data_list[2].strftime("%Y%m%d")   #日付を文字列へ変換
    data_list[3] = data_list[3].strftime("%H%M")      #時間を文字列へ変換
    return(data_list)
title = ('hogehoge',      
          'fugafuga',
          'date',
          'time',
          'mogamoga')

mongo_conn = pymongo.Connection()
db = mongo_conn["test"]
collection = db["foo"]

conn = psycopg2.connect("dbname=testdb user=postgres")
cur = conn.cursor()
cur.execute("select * from data_tbl;")

r = cur.fetchone()

while ( r != None ):
    collection.insert(dict(zip(title,conv_date(r))))
    r = cur.fetchone()

cur.close()
conn.close()
mongo_conn.close()

対象データは7万件ほど。32bitのOSでも余裕でした。