Closed papousek closed 7 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.php
a 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.
Jak máš definovaný sloupec a tu property (v anotaci?)
decision_type TEXT NULL,
a @property string|null $decision_type
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í?
při importu `app:import nss "path to result"``
V tom případě bude špatně typ $orderNumber
nebo něco takového... Mrkni co tam leze a pak to případně uprav.
v DB je order_number VARCHAR(255) NOT NULL UNIQUE,
a v property je @property string $orderNumber
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
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?
No, pokud tam leze NULL
tak je to ve sporu s VARCHAR(255) NOT NULL
, v takovém případě uvolni constraint na DB.
to bych chápal, ale v dokumentu s metadaty hodnoty jsou
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á.
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í
Pošli mi nějaká testovací data, tohle vypadá divně.
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.)
Jestli je to tim, je to smutne :-(. Standardne v CSV ty uvozovky byt nemuseji.
@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í).
@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é.
@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?
@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.
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?
A smazal jsi po tom kes?
Aha...to pomohlo, díky.
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
).