Экспорт части базы данных CoreData - PullRequest
1 голос
/ 30 июня 2011

У меня есть приложение, в котором есть основная база данных, в которой хранится информация. Очевидно, у меня есть managedObjectModel и persistentStoreCoordinator, управляющие данными приложения.

Я хотел бы экспортировать небольшое его подмножество в виде отдельного файла / хранилища (через другого координатора?), Чтобы его можно было отправить / отправить по электронной почте кому-то еще с тем же приложением, открыть и объединить с его содержимым. *

Очевидно, что часть слияния имеет липкие возможности, но я готов к этому. У кого-нибудь еще есть подсказки, предложения, опыт по трюкам, ловушкам или передовым методам?

Ответы [ 2 ]

1 голос
/ 30 июня 2011

Не пытайтесь делать это на уровне базы данных. База данных Core Data - это просто проблема реализации ... она может измениться в будущем, и вам не следует полагаться на базу данных напрямую. Вместо этого возьмите объекты (объекты, а не записи базы данных), которыми вы хотите поделиться, сериализуйте их в некоторый формат передачи (например, JSON или NSCoder) и декодируйте его на стороне получателя.

0 голосов
/ 01 июля 2011

Вы можете связать воедино произвольное число или постоянные хранилища и модели в одном контексте. Единственными серьезными ограничениями является то, что (1) вы не можете иметь объекты с одинаковыми именами в разных моделях и (2) вы не можете создавать отношения между магазинами.

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

Если вы хотите экспортировать данные, вы должны клонировать основные сущности в их подгруппы в конфигурации экспорта, а затем сохранить их в постоянном хранилище экспорта. Чтобы импортировать данные, просто полностью измените процесс.

...