Не могу увидеть столбцы После Android DBFLOW миграции
Я сделал миграцию DbFlow для своей базы данных SQLite. Я добавил два столбца, и сборка прошла успешно. Проблема в том, что я не вижу эти столбцы в таблице пользователя и не могу вставить или прочитать данные из них. В чем может быть проблема?
Мой код миграции.
package com.omnitech.elunda.mobile.database;
import com.raizlabs.android.dbflow.annotation.Database;
import com.raizlabs.android.dbflow.annotation.Migration;
import com.raizlabs.android.dbflow.sql.SQLiteType;
import com.raizlabs.android.dbflow.sql.migration.AlterTableMigration;
/**
* Created by magicwand on 9/28/2017.
* Database class to manage datastore
*/
@Database(name=ELundaDatabase.name , version=ELundaDatabase.VERSION)
public class ELundaDatabase {
public static final String name ="ElundaDatabase";
public static final int VERSION =1;
@Migration(version = ELundaDatabase.VERSION +1, database=ELundaDatabase.class)
public static class Migration1 extends AlterTableMigration<User> {
public Migration1(Class<User> table) {
super(table);
}
@Override
public void onPreMigrate() {
super.onPreMigrate();
addColumn(SQLiteType.TEXT, "phoneNumber");
addColumn(SQLiteType.TEXT, "password");
}
}
}
1 ответ
Обновите версию БД до версии, которую можно изменить. Используйте то же имя в модели, а также используйте аннотацию имени столбца
public static final String name ="ElundaDatabase";
public static final int VERSION = 2;
@Migration(version = 2, database=ELundaDatabase.class)
public static class Migration1 extends AlterTableMigration<User> {
public Migration1(Class<User> table) {
super(table);
}
@Override
public void onPreMigrate() {
super.onPreMigrate();
addColumn(SQLiteType.TEXT, "phoneNumber");
addColumn(SQLiteType.TEXT, "password");
}
}
/// Модель например
@Column(name = "time_sent")
long timeSent;