Заменить базу данных приложения Appcelerator на iOS - PullRequest
0 голосов
/ 09 ноября 2018

Hy, у меня есть приложение для iOS (только для iOS), разработанное в Titanium Appcelerator с использованием JavaScript.

Я пытаюсь использовать базы данных SQLite в своем приложении.

Мне удалось скопировать базу данных SQLite в мой проект с помощью:

Ti.Database.install('/baseDados/aquarismo', 'AquaInfo');

Этот "/ baseDados / aquarismo" является каталогом базы данных внутри моего проекта, а "AquaInfo" - это имя базы данных после ее копирования.

Затем я могу открыть и закрыть свою базу данных, чтобы получить из нее свои данные.

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

Но затем мне нужно удалить старую базу данных при запуске моего приложения и заменить ее новой.

Я пробовал это:

var f = Ti.Filesystem.getFile(
Ti.Filesystem.applicationSupportDirectory, 'database','AquaInfo.sql');
//If it's there, delete it
if(f.exists() == true){
     f.deleteFile();
}

// Install fresh database
Ti.Database.install('/baseDados/aquarismo','AquaInfo');

Однако база данных не заменяется новой.

Как мне обновить базу данных SQLite при запуске приложения для iOS?

1 Ответ

0 голосов
/ 27 ноября 2018

Всякий раз, когда вы обновляете базу данных, будь то обновление столбца таблицы или создание новой таблицы и сохранение ваших изменений, создается новый файл "AquaInfo.sqlite".

Таким образом, мы должны заменить его, потому что мы обновляем базу данных из внешнего источника.

Решение:

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

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

...