2012-03-15 11 views
7

estoy usando la herramienta de Apple EPFImporter http://www.apple.com/itunes/affiliates/resources/documentation/epfimporter.htmlEPFImporter crea mesa, pero nada importaciones

Es un script en Python que tendrá espacio separado las listas de archivos EPF e importarlos a mi base de datos.

Esto es lo que tengo:

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

Esto es lo que devuelve la 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 

La herramienta fue capaz de crear la base de datos. Simplemente no agregará ninguna de las entradas a la base de datos. Obviamente ve 2mil + registros, y pasa el tiempo revisándolos ... eliminando y fusionando las tablas en blanco ... pero es solo eso - las tablas aún están en blanco. Pensé que posiblemente se trata de una cuestión de permisos con mySQL. Comprobé dos veces y me aseguré de que todo se concediera a la cuenta de usuario que estaba usando. Aún nada.

¿Alguna idea de lo que podría ser esto?

+0

¿Resolvió esto? Estoy encontrando el mismo problema pero el cambio de autocommit no parece funcionar para mí, como lo sugiere maxperreault. – Tonester

+0

Lo que parece funcionar para mí es eliminar lo que está en Users/username/.python-eggs/per http://stackoverflow.com/questions/3061277/python-mysql-wrong-architecture-error Lo que ' Estoy pensando que hay diferentes partes de MySQL instaladas o algo ... alguna biblioteca estaba en el modo bit incorrecto. Pero funcionó para mí después de borrar lo que estaba almacenado allí. – bradenkeith

+0

Gracias por responderme. Eso no funcionó para mí, lamentablemente, pero tal vez una nueva instalación es el siguiente paso. – Tonester

Respuesta

6

El EPFImporter se fabricó en 2010. En ese momento, la última versión de MySQLdb configuraba el autocommit como verdadero. La versión de MySQLdb que está utilizando es probablemente una versión más nueva donde autocommit se establece en falso.

+0

Este fue exactamente el problema en mi caso. La solución es O bien establece el indicador de autocommit global en true como se menciona aquí, Siga la solución dada en la respuesta a continuación por @Chris Nilsson –

11

Puede conseguir que funcione mediante la alteración de EPFIngester.py acuerdo con:

  1. función Buscar

    def _populateTable(self, tableName, resumeNum=0, 
    isIncremental=False, skipKeyViolators=False): 
    
  2. En la función, dentro del bucle while, encontrar consecutivas:

    cur = conn.cursor() 
    
  3. Debajo de ella inserte:

    cur.connection.autocommit(True) 
    

La fuente alterada debe verse como:

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

Qué motor de almacenamiento está usando? Tenía exactamente el mismo problema. Cambiar el motor de almacenamiento de InnoDB a MyISAM lo resolvió.

Cuestiones relacionadas