Я экспортировал некоторые данные из своей базы данных в виде JSON, который по сути представляет собой один [список] с кучей (900 КБ) {объектов} внутри него.
Попытка импортировать их на моем производствесервер, но у меня есть дешевый веб-сервер.Им не нравится, когда я ем все их ресурсы в течение 10 минут.
Как я могу разбить этот файл на более мелкие куски, чтобы я мог импортировать его по частям?
Редактировать: На самом деле, это база данных PostgreSQL.Я открыт для других предложений о том, как я могу экспортировать все данные кусками.На моем сервере установлен phpPgAdmin, который предположительно может принимать форматы CSV, Tabbed и XML.
Мне пришлось исправить скрипт phihag:
import json
with open('fixtures/PostalCodes.json','r') as infile:
o = json.load(infile)
chunkSize = 50000
for i in xrange(0, len(o), chunkSize):
with open('fixtures/postalcodes_' + ('%02d' % (i//chunkSize)) + '.json','w') as outfile:
json.dump(o[i:i+chunkSize], outfile)
dump:
pg_dump -U username -t table database > filename
restore:
psql -U username < filename
(я не знаю, что делает pg_restore, но это дает мне ошибки)
Учебники по этому удобноопустить эту информацию, особенноопция -U
, которая, вероятно, необходима в большинстве случаев.Да, справочные страницы объясняют это, но всегда тяжело просеивать 50 вариантов, которые вас не волнуют.
Я закончил тем, что согласился с предложением Кенни ... хотя это было все еще главнымболь.Мне пришлось выгрузить таблицу в файл, сжать ее, загрузить, извлечь, затем я попытался импортировать ее, но в процессе производства данные немного отличались, и были некоторые недостающие внешние ключи (почтовые индексы прикреплены к городам).Конечно, я не мог просто импортировать новые города, потому что тогда он выдает ошибку дублирующего ключа вместо того, чтобы молча игнорировать его, что было бы неплохо.Поэтому мне пришлось очистить эту таблицу, повторить процесс для городов, только чтобы понять, что что-то еще было связано с городами, поэтому мне пришлось также очистить эту таблицу.Вернули города, и наконец я смог импортировать свои почтовые индексы.К настоящему времени я уничтожил половину своей базы данных, потому что все связано со всем, и мне пришлось воссоздать все записи.Прекрасный.Хорошо, что я еще не запустил сайт.Кроме того, «очистка» или усечение таблицы, по-видимому, не сбрасывает последовательности / автоинкременты, что мне бы хотелось, потому что есть пара магических записей, которые я хочу иметь идентификатор 1. Итак ... Мне нужно удалить или сброситьони тоже (я не знаю как), поэтому я вручную отредактировал PK для них обратно на 1.
Я столкнулся бы с подобными проблемами с решением phihag, плюс мне пришлось бы импортировать 17 файлов одинза раз, если я не написал другой сценарий импорта, соответствующий сценарию экспорта.Хотя он ответил на мой вопрос буквально, спасибо.