Delta¶
Mit Hilfe des Deltamoduls können Änderungen in der Datenbank schnell, einfach und effizient ermittelt werden.
Um Änderungen in einer Zeile identifizieren zu können, wird bei einem INSERT
-, UPDATE
- oder DELETE
-Statement
mittels Trigger ein MD5 über alle Inhalte einer Zeile berechnet und das Ergebnis in die Tabelle co_delta
geschrieben.
Das Schreiben der Änderungen erfolgt mittels Trigger innerhalb der Datenbank und ist dadurch schnell und effizient.
Wird ein neuer oder geänderter Datensatz gespeichert, so ändert sich das Datum in der Spalte sys_lastupdate
.
Das Datum ändert sich nicht, wenn der MD5 identisch ist. Das ist das Standardverhalten von MySQL.
ID¶
Jede Tabelle besitzt eine eindeutige 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 steht der Befehl dev:createdeltasql
zur Verfügung.
Ein neuer Trigger wird in /deployment/database/trigger_
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.