如何使用SugarORM

时间:2018-10-23 06:32:07

标签: android sqlite android-sqlite sugarorm

我有一个应用程序,正在使用Sugar ORM library v1.5创建数据库。我发布了应用程序的第一个版本,现在我想向数据库添加另一个表,我在以前的版本上安装了新版本,但是崩溃了。这是我的错误。我该如何解决?我应该增加数据库的版本吗?

预先感谢

android.database.sqlite.SQLiteException: no such table: CUSTOMER_SERVICE_REPORT (code 1): , while compiling: INSERT OR REPLACE  INTO CUSTOMER_SERVICE_REPORT(SERIAL_NUMBER,COSTUMER_NAME,DATE,DESCRIPTION,FACTOR,SERVICE_ID,ID,CHECK_LIST_NUMBER,REMINDER) VALUES (?,?,?,?,?,?,?,?,?)
    at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
    at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:890)
    at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:501)
    at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
    at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
    at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
    at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1546)
    at com.orm.SugarRecord.save(SugarRecord.java:280)
    at com.orm.SugarRecord.save(SugarRecord.java:416)

1 个答案:

答案 0 :(得分:1)

扩展@Prasanth S的注释,仅添加新表只需要增加VERSION,所以Sugar ORM知道要寻找新表。

但是,如果要更改其他数据,则需要设置迁移脚本。这可以通过在<version>.sql中添加/assets/sugar_upgrades/来完成。例如,添加3.sql将导致该文件在迁移到版本3时运行。

SQL文件仅包含要在本地SQLite数据库上运行的SQL命令列表。

更多信息位于the official documentation中。