Заполните CoreData большой базой данных SQL - PullRequest
0 голосов
/ 14 октября 2018

У меня есть большая база данных SQL (mysql) из 180 тысяч строк, которую я хочу использовать в CoreData.Могу ли я создать базу данных SQLite с помощью XCode, затем использовать клиентское приложение SQLight для подключения к этой базе данных и заполнить ее, используя мои данные mysql?

Или есть ли лучший способ эффективно импортировать большой набор данных в хранилище CoreData?

Он будет заполнен только один раз, и данные должны храниться на устройстве.

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

С Документы Apple кажется, что это не рекомендуется (иливозможно невозможно): «не манипулируйте существующим хранилищем SQLite, созданным с помощью Core Data, используя собственный API SQLite»

Обновление: Другой вариант, над которым я сейчас работаю, - это экспорт базы данных MySQL.JSON с помощью phpmyadmin (или другой инструмент).Затем загрузите этот файл JSON в проект.Когда приложение загрузится (возможно, только в первый раз), отправьте данные из файла json в Core Data.

1 Ответ

0 голосов
/ 14 октября 2018

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

Было бы проще просто написать небольшой инструмент командной строки macOS, включающий ту же модель данных Core Data, что и ваше приложение для iOS.Этот инструмент будет читать вашу базу данных MySQL и записывать ее в файл Core Data SQLite, который затем будет поставляться с вашим приложением для iOS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...