Предварительно заполненная база данных.Теперь я хочу добавить больше данных, не портя ранее существующие данные - PullRequest
3 голосов
/ 04 июня 2011

Я установил и приложение, которое предварительно заполняет данные, которые копируют базу данных в хранилище проекта. Используя метод «CoreDataBooks пример»: Есть ли способ предварительно заполнить основные данные?

Для обновлений приложений я хочу добавить больше данных в базу данных, но я не хочу менять существующую базу данных, так как там хранятся новые пользовательские данные?

Какой лучший способ сделать это?

Я думаю, я бы создал новую версионную модель управляемого объекта (я не уверен, что вы можете добавить новую версию MOM, если на самом деле ничего не меняется в схеме), для новых версий прочитайте текущую версию MOM, перенести MOM на последнюю версию и вручную добавить новые записи в коде, которые не были добавлены с текущей версии MOM.

Кажется немного утомительным ручное добавление новых записей в коде. Это звучит правильно или есть более элегантный способ добавить эти новые данные?

Спасибо!

1 Ответ

0 голосов
/ 04 июня 2011

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

Если вы просто хотите добавить новые данные, у вас нет другого выбора, кроме как сделать это «вручную».

Помните, Core Data - это система управления графами объектов, а не база данных. «Граф» объекта - это «сеть» взаимосвязанных объектов, поэтому единственный способ добавить данные в граф - это создать новые объекты и установить их отношения. Это не неэффективно, просто так работает.

...