更新数据库架构的最佳做法是什么?我可以使用SQL命令发送文本文件。应用程序可以检查文本文件并执行所需的命令。我猜我会有一个标志,表明更新已经完成。我还没有找到一种方法从应用程序中删除资产文件夹中的文件,这是更新数据库后最好的事情。
对此有何想法?
答案 0 :(得分:13)
您可能想要覆盖
onUpdate(SQLiteDatabase db,int old Version,int newVerison)
以下教程可引导您完成整个过程:http://www.codeproject.com/KB/android/AndroidSQLite.aspx
答案 1 :(得分:4)
更新数据库架构的最佳做法是什么?
使用SQLiteOpenHelper
。您更新应用程序时,唯一一次更新架构。是否在您读入的文件中或在Java代码中包含SQL命令取决于您。
我猜我会有一个标志来表明更新已经完成。
这是SQLiteOpenHelper
给你的一部分。
我还没有找到一种方法从应用程序中删除资产文件夹中的文件,这是更新数据库后最好的事情。
这是不可能的,抱歉。
答案 2 :(得分:1)
正如其他人所提到的,SQLiteOpenHelper就是你要开始的东西。
根据您的环境和要求,Liquibase可能值得一看。它允许以更加结构化的方式编写更新语句,并且比纯SQL操作更容易使用。不过,我没有用它来安装。
答案 3 :(得分:0)
如果要更新数据库模式,请在SQLiteOpenHelper扩展类中使用以下代码。这样将更新表结构,并且永远不会丢失db中保存的数据,
public void onUpgrade(SQLiteDatabase db, int oldVersion, int
newVersion) {
if (oldVersion < newVersion)
{
db.execSQL("ALTER TABLE " + "TABLE_NAME" + " TO " +
"NEW_TABLE_NAME");
db.execSQL("ALTER TABLE " + "TABLE_NAME" + " ADD COLUMN " +
"FIELD_NAME" + " INTEGER;");
}
}
SQLite不支持删除或修改列。