EPFImporter创建表但不导入任何内容

时间:2012-03-15 02:31:23

标签: python mysql

我正在使用Apple的EPFImporter工具http://www.apple.com/itunes/affiliates/resources/documentation/epfimporter.html

这是一个Python脚本,它将采用空格分隔的EPF文件列表并将它们导入我的数据库。

这就是我所拥有的:

Braden-Keiths-MacBook-Pro:~ bradenkeith$ ./EPFImporter.py /Users/bradenkeith/Downloads/popularity20120314 

以下是CLI返回的内容:

2012-03-14 22:12:28,748 [INFO]: Beginning import for the following directories:
    /Users/bradenkeith/Downloads/popularity20120314 
2012-03-14 22:12:28,748 [INFO]: Importing files in /Users/bradenkeith/Downloads/popularity20120314 
2012-03-14 22:12:28,749 [INFO]: Starting import of /Users/bradenkeith/Downloads/popularity20120314... 
2012-03-14 22:12:28,749 [INFO]: Beginning full ingest of epf_application_popularity_per_genre (2000491 records) 
2012-03-14 22:14:28,774 [INFO]: ...at record 1797000... 
2012-03-14 22:16:02,152 [INFO]: Full ingest of epf_application_popularity_per_genre took 0:03:33.402408 
2012-03-14 22:16:02,196 [INFO]: Import of popularity20120314 completed at: 12-03-14 22:16:02 
2012-03-14 22:16:02,196 [INFO]: Total import time for popularity20120314: 0:03:33.44 
2012-03-14 22:16:02,196 [INFO]: Total import time for all directories: 0:03:33.44

该工具能够创建数据库。它不会将任何条目添加到数据库中。它显然看到2mil +记录,花费时间梳理它们......删除并合并空白表......但只是 - 表仍然是空白的。我想可能这是mySQL的权限。我仔细检查并确保所有内容都被授予我正在使用的用户帐户。依然没有。

关于这可能是什么的任何想法?

3 个答案:

答案 0 :(得分:11)

你可以通过改变EPFIngester.py来实现它:

  1. 查找功能

    def _populateTable(self, tableName, resumeNum=0,
    isIncremental=False, skipKeyViolators=False):
    
  2. 在函数中,在while循环中,找到row:

    cur = conn.cursor()
    
  3. 在其下插入:

    cur.connection.autocommit(True)
    
  4. 更改的来源应如下所示:

    ...
    cur = conn.cursor()
    cur.connection.autocommit(True)
    colVals = unicode(", ".join(stringList), 'utf-8')
    ....
    

答案 1 :(得分:6)

EPFImporter是在2010年制作的。当时,最新版本的MySQLdb设置为autocommit为true。您正在使用的MySQLdb版本很可能是autocommit设置为false的较新版本。

答案 2 :(得分:0)

您使用的是什么存储引擎? 有完全相同的问题。将存储引擎从InnoDB切换到MyISAM解决了它。