2015-08-26 1 views
1

У меня есть Огромный файл дампа, который я создал из sqlite db, и попробуйте загрузить его в postgres db.django loaddata - пропустить недопустимые строки (DataError)

Некоторые из строк недействительны, и я хочу пропустить их. например, существуют объекты с полем символов, ограниченным 1000 символами, и на самом деле существуют строки с более длинными значениями. из-за них Джанго не позволит мне загрузить данные арматуры («значение слишком длинным для символьного типа варьирования (1000)»

Как сказать Джанго просто пропустить эти недопустимые элементы и загрузить все остальное?

благодаря

EDIT: Предпочитаемый вариант - если я могу укоротить эти значения вместо того, чтобы пропускать объект полностью будет лучше

+0

Вы можете написать свой собственный сценарий импорта ... – Jingo

ответ

1

Если вы не заботитесь о строках, которые больше, чем 1000 обугливает!. Самый простой способ - «сбросить» dumpdata django и экспортировать непосредственно из sqlit е. Затем вы можете использовать функцию substr в sqlite для обрезания нежелательных данных.

Чтобы экспортировать в CSV-файл из sqlite-типа .mode csv из оболочки sqlite, за которой следует .out filename, за которым следует запрос. вместо вызова SELECT * вам необходимо позвонить SELECT whatever, substr(whateverelse, 0, 1000,). for additional help on dumping see this question and answers.

сбросили с SQLite, вы можете импортировать в Postgres с помощью COPY FROM

+0

привет e4c5, интересный подход. потому что я торопился, я закончил тем, что сделал это уродливым способом - удалил лимит длины, позволил все загрузиться, запустил скрипт, который очистил строки, которые были слишком длинными, а затем добавил ограничение длины. Спасибо, в любом случае :) –

 Смежные вопросы

  • Нет связанных вопросов^_^