2014-09-30 65 views
0

我想为我的资产文件夹中的Sqlite .db文件进行数据库版本控制,无需Google Play应用商店。 (作为用户的自定义应用程序)。 第一次部署我有db版本1.00之后 第二次部署我有版本1.01,某些表中某些数据库文件更改了列名或类型更改。如何通过资产文件夹在Android中手动实现Sqlite数据库的升级?

如何在不从卸载的应用程序中卸载数据库的情况下实现。只是替换特定列的现有数据库?

也不想丢失用户数据(因为有一些主表)。

请看这个答案了。

Question1

Question2

+0

你不能同时拥有:从资产复制和保存数据。如果要预先保存应用程序正在使用的数据,则需要增量SQL迁移脚本,将数据库架构/内容从版本1.00转换为包含创建/更改表语句的1.01。如果您的更新包含“从资产文件夹复制数据库”,则您将丢失当前的数据。 Mybe你可以生成增量脚本,如http://stackoverflow.com/questions/4580368/how-can-i-diff-2-sqlite-files – k3b 2014-09-30 11:50:47

回答

1

你需要做的像SELECT * FROM TABLE_NAME到所有的表的请求,并获取数据保存为的任何文件的字符串。

+0

中所述,所以我想保持结果本地b4升级现有的数据库.then再次读取存储的文件数据并将其写入新的升级文件?这不是太重吗? – 2014-10-01 06:12:27

+0

@AditiK这不是正确的方法,你应该在db helper中更新onCreate方法中的db。在你的数据库中,你可以更容易地删除所有数据,并按照你写的创建新的数据库。 – QArea 2014-10-02 13:10:41

+0

需要帮助。我正在使用onUpgrade方法增加数据库版本它现在工作的fone – 2014-10-07 05:27:47