感謝您的閱讀和幫助:)如何添加一個新列
我使用後更新activeandroid表ActiveAndroid 3.0 - Android 2.2的 - 在我的應用程序我有一個名爲「用戶」的模式。最初我只創建了具有(id,名稱,密碼)列/屬性的模型,我在模擬器上運行了應用程序,並且它工作正常。
@Table(name = "user")
public class User extends Model {
@Column (name = "name")
public String name;
@Column (name = "pass_code")
public String passCode;
}
然後我添加了一個新的列/屬性 - profileImage。我在模擬器上運行了應用程序,並且我得到了SQLite列profileImage不存在的錯誤。
@Table(name = "user")
public class User extends Model {
@Column (name = "name")
public String name;
@Column (name = "pass_code")
public String passCode;
@Column (name = "profile_image")
public String profileImage;
}
我試着改變ActiveAndroid數據庫名稱和更新清單文件中的數據庫版本屬性。
<meta-data android:name="AA_DB_NAME" android:value="my_app.db" />
<meta-data android:name="AA_DB_VERSION" android:value="2" />
但我不斷收到列不存在的錯誤。
ERROR AndroidRuntime Caused by: android.database.sqlite.SQLiteException:
no such column: profile_image: , while compiling: SELECT * FROM user WHERE profile_image = ?
我也試過,未安裝從模擬器的應用程序,重新啓動仿真器,調用ActiveAndroid.cacheClear()。到目前爲止,沒有一個工作。
我真的很感激任何幫助。謝謝。
感謝您的幫助,非常感謝。 – dagger
出於好奇,不應該刪除應用程序並重新安裝它有效嗎?或者,刪除應用程序不會刪除數據庫? –
@JoshPinter:是的,卸載應用程序應該可以工作。事實上,點擊「清除數據」也應該做到這一點。但這不是一個長期的解決方案,因爲你可能不希望你的應用程序的用戶通過這個過程。正確的方法是提供適當的模式升級邏輯。 –