datoszs / czech-lawyers

Web project with aggregated statistics about advocates from their cases at czech upper courts.
GNU General Public License v3.0
6 stars 0 forks source link

Import dat z crawlerů do databáze #26

Closed papousek closed 7 years ago

repli2dev commented 8 years ago

Za mě je to ready, nyní prosím @xorelvistor o otestování (a případnou úpravu) s jeho daty (připomínám, že přibyl jako druhý sloupec record_id).

xorelvistor commented 8 years ago

@repli2dev upravil jsem si databázi (přidal sloupec k supreme administrative court), upravil structures/2016-07-03-203252-base.sql záznam, upravil seznam sloupců metadata.csv a přidal novou property do DocumentSupremeAdministrativeCourt.phpa teď mám problém s

Nextras\Orm\InvalidArgumentException

Value for App\Model\Documents\DocumentSupremeAdministrativeCourt::$orderNumber property is invalid.

je můj postup úpravy tabulky databáze správný? Pokud ano, mohu commitnout.

repli2dev commented 8 years ago

Jak máš definovaný sloupec a tu property (v anotaci?)

xorelvistor commented 8 years ago

decision_type TEXT NULL, a @property string|null $decision_type

repli2dev commented 8 years ago

Pak by měl typ u property měl být string|null. Nicméně to neřeší proč to selhává u $orderNumber, kdy se ti ta chyba objeví?

xorelvistor commented 8 years ago

při importu `app:import nss "path to result"``

repli2dev commented 8 years ago

V tom případě bude špatně typ $orderNumber nebo něco takového... Mrkni co tam leze a pak to případně uprav.

xorelvistor commented 8 years ago

v DB je order_number VARCHAR(255) NOT NULL UNIQUE, a v property je @property string $orderNumber

repli2dev commented 8 years ago

očividně se do něj v import skriptu dává něco co tam nesedí... možná jsem špatně pojmenoval sloupce... vydumpuj si to v průběhu processDirectory

xorelvistor commented 8 years ago

leze tam NULL a sloupce jsou pojmenovaný dobře. Nemůže být problém, že to začíná číslem a obsahuje to mezery (1 As 4/2003 - 48) a není to v uvozovkách?

repli2dev commented 8 years ago

No, pokud tam leze NULL tak je to ve sporu s VARCHAR(255) NOT NULL, v takovém případě uvolni constraint na DB.

xorelvistor commented 8 years ago

to bych chápal, ale v dokumentu s metadaty hodnoty jsou

repli2dev commented 8 years ago

A je to v tom csvčku obaleno "" nebo je to tam napřímo? Možná to ta knihovna co používáme pro práci s CSV nezvládá.

xorelvistor commented 8 years ago

obalený to právě není, ale ostatní záznamy/sloupce taky ne...zkoušel jsem výpis do konzole jednotlivých sloupců a všechny se tváří prázdné...asi to bude nějaká chyba při čtení

repli2dev commented 8 years ago

Pošli mi nějaká testovací data, tohle vypadá divně.

repli2dev commented 8 years ago

Díky za data, došel jsem k tomu, že je to problém toho, že to není obalené (neuvědomil jsem si to, protože i ve svém crawleru jsem na to jen použil knihovnu, která mi prostě vrátila csv). Dodal jsem to tedy do specifikace crawlerů a u sebe si to uprav.

(Jinak on se celý text řádku objevil v prvním sloupci, ale snadno se to dalo přehlédnout.)

papousek commented 8 years ago

Jestli je to tim, je to smutne :-(. Standardne v CSV ty uvozovky byt nemuseji.

repli2dev commented 8 years ago

@papousek nemusejí (jsou volitelné), nicméně ta knihovna je má nastavené jako výchozí, což se dá změnit pouze ručně, autodetekci to nemá (a obecně bych raději preferoval obalování řetězců, které mi připadne, že zbezpečňuje vstupní soubory, obzvláště když to skoro nic nestojí).

repli2dev commented 8 years ago

@xorelvistor ještě jsem si uvědomil, že po kvůli tvým record_id (kde je jednací číslo) by bylo vhodné upravit Normalize::recordId, aby více za sebou následujících mezer kanonizovalo do jedné.

xorelvistor commented 8 years ago

@repli2dev Tak jsem našel řešení tohoto problému, ale zdaleka nejsem u cíle. Já už od začátku používám v CSV jako oddělovač ;, ale defaultní oddělovač té knihovny byl ,. Neměli bychom oba používat stejné oddělovače? Navrhuji ;. Další chyba se kterou jsem se setkal je: Storage 'document_supreme_administrative_court' has not defined any primary key. Nějaký nápad?

repli2dev commented 8 years ago

@xorelvistor já taky používám ;, takže souhlasím.

To druhé byly zapomenuté sloupce (ORM knihovna má nějaký problém s tabulkami, které nemají žádný primární sloupec, takže jsem přidal umělý). Řešil jsem to komitem 11cc243843653859531049800c69b9890bf73a9f, takže je potřeba znovuvytvořit DB.

xorelvistor commented 8 years ago

Jsem přesvědčen o tom, že to už jsem provedl. Jelikož vkládání z Ústavního soudu mi funguje. Takže nějaký jiný typ?

repli2dev commented 8 years ago

A smazal jsi po tom kes?

xorelvistor commented 8 years ago

Aha...to pomohlo, díky.