Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何从托管在Google Drive或任何其他服务器上的db文件填充sqlite数据库_Android_Angularjs_Sqlite_Cordova_Web Sql - Fatal编程技术网

Android 如何从托管在Google Drive或任何其他服务器上的db文件填充sqlite数据库

Android 如何从托管在Google Drive或任何其他服务器上的db文件填充sqlite数据库,android,angularjs,sqlite,cordova,web-sql,Android,Angularjs,Sqlite,Cordova,Web Sql,我正在创建一个问答混合应用程序,因此我正在使用webSQL,目前我的应用程序还没有一个完整的数据库,它永远也不会完整。因此,我想知道我是否可以在我的google drive公用文件夹中托管一个sqlite数据库文件或该文件的转储文件,并指向应用程序下载最新的db文件并删除以前的websql数据。我不知道如何告诉websql服务器有最新版本的db,所以请下载它 我现在想的是在服务器上修改文件的日期,如果日期/时间与下载websql的日期匹配,就不要做任何事情,因为您有最新的版本。还有其他方法吗 首

我正在创建一个问答混合应用程序,因此我正在使用webSQL,目前我的应用程序还没有一个完整的数据库,它永远也不会完整。因此,我想知道我是否可以在我的google drive公用文件夹中托管一个sqlite数据库文件或该文件的转储文件,并指向应用程序下载最新的db文件并删除以前的websql数据。我不知道如何告诉websql服务器有最新版本的db,所以请下载它

我现在想的是在服务器上修改文件的日期,如果日期/时间与下载websql的日期匹配,就不要做任何事情,因为您有最新的版本。还有其他方法吗

首先,我该怎么做? 我有一个粗略的想法纠正我你认为我错了的地方

  • 如何在我的共享文件夹Google Drive文件夹中获取文件的修改日期?(此步骤已解决)
  • 为了获取sql文件,我使用$http.get(文件的位置)//我用角的
  • 如何从大文件中插入数据。如果文件很大,可能会导致一些性能问题。如何将文件插入到零件中
两个小时过去了,没有专家回答你的问题,所以我不妨试一试

首先,我不确定你所说的数据库不完整(“而且永远不会完整”)是什么意思。您是指数据库模式(表结构等)还是存储的数据?如果这是第一个,那么WebSQL有很好的版本控制API——请看和方法

如果您的意思是您将拥有越来越多的数据,那么标准的方法是以增量方式应用更改,而不是重新下载整个数据库。你说数据文件很大,你真的想在每次更新后下载吗?这种方法的优点是,您不需要为增量升级文件而烦恼

我不会下载一些转储文件并试图以某种方式重写现有数据库,而是将数据存储为Google Drive上的
insert
查询列表(或某种csv格式)。这种更新数据的方法就是删除所有表的内容并执行文件的最新版本。数据库的二进制转储可能更小,但调试任何问题都将是一场噩梦

如果您想对数据进行版本设置,只需创建一个表并存储一行,描述最新版本或上次修改日期,如您所说


最后是关于插入性能——我猜实际的瓶颈将是下载数据,而不是插入。如果性能对应用程序至关重要,请考虑增量更新方法,而不是重新下载数据库。

谷歌驱动器有API来获得文件的最后修改日期和时间,这对我现在很有用处。对于较小的更改,增量更新将是最好的,但对于模式的完全更改,完整数据库下载将是最好的。因此,在适当的情况下,我必须同时使用这两种方法。但是我如何管理微小的增量更改呢。很多人都在提交数据库,所以跟踪所有的更改将是一件乏味的事情。如果很多人都在提交数据库,那么您可能需要一些代码将修改后的db版本(有人的更改)推回到Google Drive,对吗?您可以在每次提交(或定期)后创建新的“增量更改”文件,而不是推送整个数据库这里我有另一个问题,如果我做增量更新,我的新应用程序用户将只获得更新,而不是旧数据。我现在决定不推小更新,而是每周/每月推一次主要更新,该更新将携带一个js文件,该文件将从头创建数据库。这将消除所有复杂的工作环境,使事情顺利进行,并使我的工作流程顺畅。虽然带宽将是一个主要问题,因为我的数据库大小将超过100mb。但是,我将拆分我的应用程序和数据库,因为我的数据库是可拆分的,用户可以下载他们想要使用的应用程序部分。如果有人有更好、更容易理解的想法,请在这里提供。