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

Posted

技术标签:

【中文标题】在 iOS 上替换 Appcelerator 应用程序数据库【英文标题】:Replace Appcelerator Application database on iOS 【发布时间】:2018-11-09 17:45:03 【问题描述】:

你好,我有一个使用 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】:

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

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

解决方案:

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

因此,您可以通过手动编写代码来创建表格和相关内容来实现这一点。

【讨论】:

以上是关于在 iOS 上替换 Appcelerator 应用程序数据库的主要内容,如果未能解决你的问题,请参考以下文章

Appcelerator iOS 发布 iTunes。上传的二进制文件无效

如何在 appcelerator 中裁剪图库图像?

Titanium Appcelerator SubView 在 IOS 中不起作用

蓝牙模块 android & ios appcelerator

Appcelerator iOS Rich Push Notification 在通过 FCM 发送时不显示图像

在IOS中录制带有实时时间戳水印的视频,最好使用appcelerator