У меня есть следующий сценарий: Мое приложение опубликовано с версией базы данных 2 для клиентов. Я исправил некоторые ошибки и добавил дополнительные функции в свою БД. Это также изменило мои модели, и поэтому база данных тоже изменилась. Как передать сценарии миграции в студии Android, я увидел предложение о добавлении сценариев миграции для eclipse. Но я не нашел решения для студии Android.Обновление версии базы данных в Active Android
Детальное описание
Я следовал инструкциям вики: https://github.com/pardom/ActiveAndroid/wiki/Schema-migrations и попытался добавить столбец к в существующей таблице БД, но это не работает.
Мой начальный класс enter code here
Модель
@Table(name = "Person")
public class Person extends Model
{
@Column
private String name;
}
Все в порядке. Затем я добавил новое поле под названием возраст:
@Table(name = "Person")
public class Person extends Model
{
@Column
private String name;
@Column
private int age;
}
и изменил манифест флага + создал необходимые активы/Миграцию/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)
проверить Мой ответ – HassanUsman
Что вы сделали в методе onUpgrade? – Harry
Я обновил версию db в файле манифеста. Я хочу дать скрипт миграции. Но не знаю, где я должен поместить исходный код androidstudio. Нет файла активов в коде, как в eclipse. –