Ich bin ziemlich neu in SQLite und ActiveAndroid.ActiveAndroid-Schema-Migration Spalte hinzufügen, die ein Objekt ist
Ich arbeite, um ein Update für eine App auszurollen und muss meine Datenbank migrieren. Bei einigen der Tabellen wurden Spalten hinzugefügt oder entfernt usw. In SchemaAmigration werden Schema-Migrationen durch Schreiben eines Migrationsskripts ausgeführt. Es ist für mich einfach zu verstehen, wie man dies bei grundlegenden Datentypen tut, aber ich bin verwirrt, wie man Spalten hinzufügt, die anderen Objekten/Klassen zugeordnet sind.
Zum Beispiel unten ist ein bestehendes Modell:
@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();
}
...
}
Und ich bin zu aktualisieren, es zu sein:
@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();
}
...
}
Wie füge ich diese Spalte des Grundes ALTER TABLE GatewayDevice ADD COLUMN controller <type>
Struktur mit?
Also das Problem ist, dass Sie don‘ Ich weiß nicht, was ich das Fremdschlüsselfeld nennen soll, oder? Ich weiß es auch nicht, und die Dokumentation scheint nicht zu sagen. Die beiden Optionen, die Ihnen in den Sinn kommen, sind, in den Quellcode zu schauen oder die App mit dem neuen Modell auszuführen und die Datenbank zu inspizieren und zu sehen, was AA tut, um den Fremdschlüssel zu erstellen. Wenn Sie es herausfinden, posten Sie bitte Ihre Lösung. – nasch