спасибо за чтение и помогает :)Как обновить таблицу с activeandroid после добавления нового столбца
Я использую ActiveAndroid 3,0 - Android 2,2 - В моем приложении у меня есть модель под названием «пользователь». сначала я создал только модель с столбцами/атрибутами (id, name, passcode), я запустил приложение в эмуляторе, и он сработал.
@Table(name = "user")
public class User extends Model {
@Column (name = "name")
public String name;
@Column (name = "pass_code")
public String passCode;
}
Затем я добавил новую колонку/атрибут - profileImage. Я запустил приложение на эмуляторе, и у меня получился SQLite column 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: Да, удаление приложения должно работать. На самом деле, поражение «Clear Data» должно также делать трек. Это не долгосрочное решение, потому что вы, вероятно, не хотите, чтобы пользователи вашего приложения прошли этот процесс. Правильный подход заключается в обеспечении соответствующей логики обновления схемы. –