2013-02-20 2 views
0

В настоящее время у меня есть приложение v1.1 в App Store, в котором используется Core Data.Извлечение управляемой объектной модели основных данных из Git

Я делаю простые изменения в схеме основных данных, добавляя несколько атрибутов к существующей сущности для предстоящей версии. Из-за моей наивности я сделал вышеупомянутые изменения в существующей модели объектов, управляемой Core Data, из версии выпуска.

При чтении this руководства по легкой миграции, я наткнулся на это:

Поэтому абсолютно необходимо, чтобы вы никогда не вносить изменения в объектной модель, для отпущенной версии приложения. То есть, если ваше приложение уже находится в App Store, не изменяйте ни одной вещи в этой версии модели управляемого объекта.

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

Update/Edit - Это не важно для меня, чтобы перенести текущего пользователя основного хранилища данных, как большая часть данных может быть повторно загружены, и я использую Core Data, чтобы создать более гладкий опыт. Будет ли использоваться только что измененная модель объектно-ориентированного объекта с данными, вызывающая проблемы/сбои?

ответ

1

Я бы просто проверил ревизию от Git, которая содержит модель, которую вы выпустили. Затем возьмите эту модель и скопируйте ее в текущую версию. В этот момент вы можете создать новую версию модели и быть на своём весерном пути.

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

Я не думаю, что первый маршрут должен быть слишком хлопотным.

1

Вам необходимо проследить историю совершения операции, git log - это один из способов, и найдите точку, в которую вы хотите вернуться. Обратите внимание на хеш фиксации, которую вы хотите.

git checkout commit-hash path/to/file

См this SO answer для полного объяснения.

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