2012-03-15 9 views
7

używam EPFImporter narzędzie Apple http://www.apple.com/itunes/affiliates/resources/documentation/epfimporter.htmlEPFImporter tworzy stolik, ale nic importu

Jest to skrypt Pythona, który zajmie miejsce oddzielone EPF listy plików i importować je do mojej bazy danych.

Oto co mam:

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

Oto co zwraca 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 

Narzędzie był zdolny do tworzenia bazy danych. Po prostu nie doda żadnych wpisów do bazy danych. Oczywiście widzi 2 miliony + rekordów i spędza czas, je przeczesując ... usuwając i łącząc puste tabele ... ale to po prostu - tabele są nadal puste. Pomyślałem, że prawdopodobnie jest to kwestia uprawnień z mySQL. Sprawdziłem dwukrotnie i upewniłem się, że wszystko zostało przyznane na konto użytkownika, z którego korzystałem. Wciąż nic.

Jakieś wyobrażenie o tym, co to może być?

+0

Rozwiązałeś to? Zauważyłem ten sam problem, ale zmiana autocommit nie działa dla mnie, jak sugeruje maxperreault. – Tonester

+0

To, co wydaje się działać dla mnie, to usunąć to, co jest w Użytkownicy/nazwa użytkownika/.python-eggs/per http://stackoverflow.com/questions/3061277/python-mysql-wrong-architecture-error Co ja? m myślisz, że były różne bity zainstalowanego mysql lub coś takiego ... jakaś biblioteka była w niewłaściwym trybie bitowym. Ale zadziałało to po usunięciu tego, co tam było zapisane. – bradenkeith

+0

Dzięki za skontaktowanie się z nami. To niestety nie zadziałało, ale może nowa instalacja to kolejny krok. – Tonester

Odpowiedz

6

EPFImporter powstał w 2010 roku. W tym czasie najnowsza wersja MySQLdb ustawiła autocommit na true. Używana wersja MySQLdb jest najprawdopodobniej nowszą wersją, w której autocommit ma wartość false.

+0

To był dokładnie problem w moim przypadku. Rozwiązaniem jest albo ustawienie globalnej flagi autocommit na true, jak wspomniano tutaj, Else postępuj zgodnie z rozwiązaniem podanym w poniższej odpowiedzi przez @Chris Nilsson –

11

można zmusić go do pracy przez zmianę EPFIngester.py według:

  1. Find

    def _populateTable(self, tableName, resumeNum=0, 
    isIncremental=False, skipKeyViolators=False): 
    
  2. W funkcji, wewnątrz pętli while, znaleźć wiersz:

    cur = conn.cursor() 
    
  3. Pod nim wpisz:

    cur.connection.autocommit(True) 
    

Zmieniona źródło powinna wyglądać następująco:

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

Co silnik składowania używasz? Miał dokładnie ten sam problem. Przestawienie silnika magazynu z InnoDB na MyISAM rozwiązało go.

Powiązane problemy