在 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。上传的二进制文件无效
Titanium Appcelerator SubView 在 IOS 中不起作用
蓝牙模块 android & ios appcelerator