在iOS上替换Appcelerator应用程序数据库

时间:2018-11-09 17:45:04

标签: javascript sqlite appcelerator-titanium

嘿,我有一个使用JavaScript在Titanium Appcelerator中开发的iOS应用程序(仅适用于iOS)。

我正在尝试在我的应用程序中使用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');

但是数据库不会被新数据库取代。

启动iOS应用后如何更新SQLite数据库?

1 个答案:

答案 0 :(得分:0)

无论何时更新数据库,无论是更新表列还是创建新表并保存更改,都会生成新的“ AquaInfo.sqlite”文件。

所以我们必须替换它,因为我们正在从外部源更新数据库。

解决方案:

如果要在应用程序起点更改数据库。您必须像创建表那样手动编写代码,在手动创建的表中添加列,并更改某些列的数据类型。

因此,您可以通过手动编写用于创建表和相关内容的代码来实现此目的。