Мигрировать обычную базу данных sqlite3 на основные данные? - PullRequest
4 голосов
/ 09 ноября 2010

У меня нормальная предварительно заполненная база данных. Я хочу перенести его в основные данные для моего приложения. Каков наилучший способ достичь этого. Кстати, я сделал это, скопировал базу данных recipes.sqlite из образца apple. Экспортировал таблицу sql. Переименуйте имена столбцов в соответствии с основными столбцами таблицы данных (что-то вроде этого - id «первичный ключ» с помощью Z_PK). заполнил эту таблицу моими ценностями. Но я не могу понять названия столбцов Z_ENT и Z_OPT. Кто-нибудь знает, как мне легко перенести мою предварительно заполненную базу данных sqlite3 в основные данные?

Спасибо

Ответы [ 2 ]

6 голосов
/ 09 ноября 2010

Не пытайтесь вручную создать файл Core Data SQLite.Это путь к провалу;каждый раз.

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

Внутренняя структура файла базовых данных SQLite спроектирована непрозрачной и не должна подвергаться обратному проектированию.Apple не гарантирует, что файловая структура останется прежней.Они уже несколько раз меняли его с момента выпуска Core Data.

Импорт

Чтобы выполнить импорт, он будет аналогичен любому другому файлу:

  1. Вывстать в стек основных данных.
  2. Вы проходите каждую таблицу и каждую строку в базе данных неосновных данных.
  3. Создаете новый объект базовых данных для каждой строки.
  4. Вставьте данные из старой строки в новый объект.
1 голос
/ 16 сентября 2013

Попробуйте следующий инструмент, который переносит стандарт SQLite в Core Data Compatible Sqlite

https://github.com/tapasya/Sqlite2CoreData

...