簡體   English   中英

在Active Android中升級數據庫版本

[英]Upgrade Database version in Active Android

我有以下情形:我的應用程序以數據庫版本2發布給客戶。 我修復了一些錯誤,並在數據庫中添加了更多功能。 這也改變了我的模型,這就是數據庫也改變的原因。 如何在Android Studio中提供遷移腳本,我看到了為Eclipse添加遷移腳本的建議。 但是我沒有找到任何適用於android studio的解決方案。

詳細說明

我遵循了Wiki指示: https//github.com/pardom/ActiveAndroid/wiki/Schema-migrations,並嘗試將列添加到現有的db表中,但這是行不通的。

我的初始enter code here Model類

@Table(name = "Person")
public class Person extends Model 
{
@Column
private String name;
}

一切都很好。 然后,我添加了一個名為age的新字段:

@Table(name = "Person")
public class Person extends Model 
{
@Column
private String name;
@Column
private int age;
}

並更改了清單標志+創建了所需的資產/migrations/2.sql腳本

ALTER TABLE Person ADD COLUMN age INTEGER;

我必須在AndroidStudio環境中提供此遷移腳本的位置。 有什么線索嗎?

我還更新了清單文件中的數據庫版本。 我仍然在追隨異常

android.database.sqlite.SQLiteException: no such table: Tablename (code 1): , while compiling: SELECT * FROM TableName
at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:891)
at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:502)
at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37)
at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44)
at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1316)
at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1255)
at com.activeandroid.Model.rawQuery(Model.java:349)
at com.activeandroid.Model.rawQuerySingle(Model.java:369)
at com.activeandroid.query.From.executeSingle(From.java:159)
at com.eshopmanager.shopmanager10.MainActivity$1.run(MainActivity.java:127)
at java.util.Timer$TimerImpl.run(Timer.java:284) 

我通過在main中創建資產文件夾解決了該問題。 之后,我創建了遷移。 將sql文件放在其中。 使我的數據庫改變效果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM