Я новичок в SQLite и ActiveAndroid.
Я работаю над выпуском обновления для приложения, и мне нужно перенести мою базу данных. В некоторых таблицах были добавлены или удалены столбцы и т. д. В ActiveAndroid миграция схемы выполняется путем написания сценария миграции. Мне легко понять, как это сделать при работе с базовыми типами данных, но я не понимаю, как добавлять столбцы, сопоставленные с другими объектами/классами.
Например, ниже представлена существующая модель:
@Table(name = "GatewayDevices", id = BaseColumns._ID)
public class GatewayDevice extends Model {
private static final String TAG = GatewayDevice.class.getSimpleName();
@Column(name = "identifier", unique = true, onUniqueConflict = Column.ConflictAction.REPLACE, notNull = true)
private String identifier;
@Column(name = "deviceType", notNull = true)
private String deviceType;
@Column(name = "name")
private String name;
public GatewayDevice() {
super();
}
...
}
И я обновляю его, чтобы быть:
@Table(name = "GatewayDevices", id = BaseColumns._ID)
public class GatewayDevice extends Model {
private static final String TAG = GatewayDevice.class.getSimpleName();
@Column(name = "identifier", unique = true, onUniqueConflict = Column.ConflictAction.REPLACE, notNull = true)
private String identifier;
@Column(name = "deviceType", notNull = true)
private String deviceType;
@Column(name = "name")
private String name;
@Column(name = "controller", onUpdate = Column.ForeignKeyAction.CASCADE, onDelete = Column.ForeignKeyAction.CASCADE)
private Controller controller;
public GatewayDevice() {
super();
}
...
}
Как добавить этот столбец, используя базовую структуру ALTER TABLE GatewayDevice ADD COLUMN controller <type>
?