csvkit mysql импорт не удается с VARCHAR требует длины на диалекте mysql - PullRequest
0 голосов
/ 22 февраля 2019

После установки csvkit с помощью следующей команды

$ sudo -HE pip install --upgrade -e git+git://github.com/wireservice/csvkit.git@master#egg=csvkit

и попытки импортировать .csv следующим образом:

csvsql --db mysql://root:root@127.0.0.1:3306/jira_test --insert --table bugs_temp --no-constraints --overwrite --create-if-not-exists --no-inference --blanks bugs_temp.csv

Я получаю следующие ошибки

/usr/local/lib/python2.7/dist-packages/agate/utils.py:292: DuplicateColumnWarning: Column name "0" already exists in Table. Column will be renamed to "0_2".
/usr/local/lib/python2.7/dist-packages/agate/utils.py:292: DuplicateColumnWarning: Column name "0" already exists in Table. Column will be renamed to "0_3".
/usr/local/lib/python2.7/dist-packages/agate/utils.py:292: DuplicateColumnWarning: Column name "0" already exists in Table. Column will be renamed to "0_4".
/usr/local/lib/python2.7/dist-packages/agate/utils.py:292: DuplicateColumnWarning: Column name "0" already exists in Table. Column will be renamed to "0_5".
/usr/local/lib/python2.7/dist-packages/agate/utils.py:292: DuplicateColumnWarning: Column name "0" already exists in Table. Column will be renamed to "0_6".
/usr/local/lib/python2.7/dist-packages/agate/utils.py:292: DuplicateColumnWarning: Column name "0" already exists in Table. Column will be renamed to "0_7".
/usr/local/lib/python2.7/dist-packages/agate/utils.py:292: DuplicateColumnWarning: Column name "0" already exists in Table. Column will be renamed to "0_8".
/usr/local/lib/python2.7/dist-packages/agate/utils.py:292: DuplicateColumnWarning: Column name "0" already exists in Table. Column will be renamed to "0_9".
(in table 'bugs_temp', column 'ESS-3146'): VARCHAR requires a length on dialect mysql

1 Ответ

0 голосов
/ 21 марта 2019

(Этот ответ может быть несколько неполным. У меня нет опыта работы с csvsql, поэтому я делаю его в вики.)

csvkit зависит от agate-sql, что зависит от sqlalchemy.

sqlalchemy содержит этой строкикод :

    "VARCHAR requires a length on dialect %s" % self.dialect.name

Кажется, что " вам нужно указать длины для всех строк ", цитируя этот ответ .

Это означает, что вы не можете использовать опцию --no-constraints:

  --no-constraints      Generate a schema without length limits or null
                        checks. Useful when sampling big tables.

См. https://csvkit.readthedocs.io/en/latest/scripts/csvsql.html

...