如何使用 SugarORM 在数据库中创建另一个 table
How to create another table in database with SugarORM
我有一个应用程序,我正在使用 Sugar ORM library v1.5 创建数据库。我发布了应用程序的第一个版本,现在我想向数据库添加另一个 table,我在以前的版本上安装了新版本,但它崩溃了。这是我遇到的错误。我该如何解决?我应该增加数据库的版本吗?
提前致谢
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)
扩展@Prasanth S 的评论,仅添加新表只需要递增 VERSION
,因此 Sugar ORM 知道寻找新表。
但是,如果您希望进行其他数据更改,则需要设置迁移脚本。这可以通过在 /assets/sugar_upgrades/
中添加 <version>.sql
来完成。例如,添加 3.sql
将导致此文件在迁移到版本 3 时为 运行。
SQL 文件仅包含一个 SQL 命令列表,用于 运行 在您的本地 SQLite 数据库中。
更多信息在 the official documentation。
我有一个应用程序,我正在使用 Sugar ORM library v1.5 创建数据库。我发布了应用程序的第一个版本,现在我想向数据库添加另一个 table,我在以前的版本上安装了新版本,但它崩溃了。这是我遇到的错误。我该如何解决?我应该增加数据库的版本吗?
提前致谢
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)
扩展@Prasanth S 的评论,仅添加新表只需要递增 VERSION
,因此 Sugar ORM 知道寻找新表。
但是,如果您希望进行其他数据更改,则需要设置迁移脚本。这可以通过在 /assets/sugar_upgrades/
中添加 <version>.sql
来完成。例如,添加 3.sql
将导致此文件在迁移到版本 3 时为 运行。
SQL 文件仅包含一个 SQL 命令列表,用于 运行 在您的本地 SQLite 数据库中。
更多信息在 the official documentation。