Android更新SQLite数据库架构?

时间:2011-02-18 00:22:25

标签: android sqlite

更新数据库架构的最佳做法是什么?我可以使用SQL命令发送文本文件。应用程序可以检查文本文件并执行所需的命令。我猜我会有一个标志,表明更新已经完成。我还没有找到一种方法从应用程序中删除资产文件夹中的文件,这是更新数据库后最好的事情。

对此有何想法?

4 个答案:

答案 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不支持删除或修改列。