2015-07-08 7 views
-1

У меня есть следующий сценарий: Мое приложение опубликовано с версией базы данных 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) 
+0

проверить Мой ответ – HassanUsman

+0

Что вы сделали в методе onUpgrade? – Harry

+0

Я обновил версию db в файле манифеста. Я хочу дать скрипт миграции. Но не знаю, где я должен поместить исходный код androidstudio. Нет файла активов в коде, как в eclipse. –

ответ

0

Я решил проблему, создав папку с основными ресурсами. После этого я создал миграцию. В этом будет размещен sql-файл. Так что моя база данных меняет эффекты.

Смежные вопросы