Delta¶
Das schreiben der Daten in die Tabelle ´co_delta´, werden von Triggern innerhalb der Datenbank übernommen.
Bei INSERT , UPDATE und DELETE werden die entsprechenen Trigger aufgerufen.
Es wird ein MD5 über alle Inhalte der Spalten berechnet und in der ´co_delta´ geschrieben.
Das Datum in ´sys_lastupdate´ wird dann geändert, wenn ein anderer MD5 geschrieben wurde.
Wenn der MD5 gleich ist , dann wird auch das Datum nicht geändert obwol ein UPDATE ausgeführt wurde.
Dieses Standardverhalten von MYSQL, wird für diesen Zweck genutzt um so die Änderungen mitzubekommen.
IDs¶
Jede Tabelle hat eine ID mit der diese identifiziert wird. Diese ID wird in der Delta Route definiert.
Für weitere Tabellen muss hier geprüft werden welche IDs schon vergeben sind.
<configuration>
<urls>
<url name="item" id="1" ><![CDATA[/api/commerce/item/search?q=item.iid%20IN%20%22${idlist}%22]]></url>
</urls>
</configuration>
Erstellen eines neuen Triggers¶
Hierzu wurde ein Dev Tool anegelegt ´dev:createdeltasql´ weitere Infos hier: ´/entwickler/befehlszeile/´
Der Trigger wird in \deployment\database\trigger_[Name der Tabelle].sql abgelegt und muss eingereicht werden.
Export der Tabellen¶
Das Script \development\script\export-table.php muss mit --skip-triggers laufen , damit die Trigger nicht doppelt in den Dateien definiert werden.