Ich scheitere gerade daran, eine DAL-taugliche Tabelle zu definieren, deren primary key ganz klassisch ein Integer-Feld ist, das selber zwar unique aber nicht autoincrement ist
Ich hab’s jetzt so:
return new FieldCollection([
(new IntField('id', 'id'))->addFlags(new Required(), new PrimaryKey()), ...
Das Problem ist nun, dass ich kein create machen kann und stattdessen folgende Meldung bekomme
Expected primary key field id for definition [...] not provided
Der DAL-Validator auf der Konsole meldet 0 Fehler. Und selbstredend wird das id-Feld im Datenarray mit übergeben.
[Nachtrag]
Ich habe es jetzt (erstmal) mit einer “normalen” ID-Spalte gelöst. Das Problem daran ist, dass wir die Daten aus einer externen Quelle erhalten (CSV-Import im 5stelligen Zeilebereich!) und die o.g. Integer-Spalte der Dreh- und Angelpunkt der gesamten Datenlogik ist.
Ich muss jetzt also bei jedem einzelnen Datensatz vorher prüfen, ob diese ID schon vorhanden ist und wenn ja, dann die uuid dazu ermitteln … um dann das upsert zu machen (und ggf. vorher eine neue uuid generieren) … das ist Datenbanklast, die eigentlich nicht nötig wäre.
Wenn sich das einer vom Team mal angucken könnte, bitte? Ich kann mir nicht vorstellen, dass das grundsätzliche Konzept an der Stelle wirklich so unausgegoren ist?!