I confirm that:
(Please fill in the actual values from your environment - check Contao Manager or use composer show)
| Key | Value | Comments |
|---|---|---|
| PHP version: | 7.2.2 | |
| Contao version: | 4.4.41 | |
| MetaModels version: | 2.1.4 | |
| Installed MetaModels packages: | All | |
| DCG version: | 2.1.3 |
The database is inconsistend when you delete an item that is referenced in another item. There is no "delete cascade", so the relation is still stored in tl_metamodel_tag_relation.
Have an MetaModel A and B, where A has a tags attribute that references B. Delete one item of MetaModel B that is referenced in an Item of MetaModel A.
The relation in tl_metamodel_tag_relation is not deleted.
The relation in tl_metamodel_tag_relation is deleted
This is currently a known limitation.
MetaModels has no, as Contao itself, foreign key definitions and hence no enforcement of these.
This will be addressed in MM 3.0 earliest as it requires rewrites in the core DB management.
Is it possible to add an event in the delete method of the MetaModels DCGeneral Driver https://github.com/MetaModels/core/blob/master/src/DcGeneral/Data/Driver.php#L131 before deleting the item itself?
for DcGeneral there is such an event: PreDeleteModelEvent
However, bear in mind that this does NOT get triggered when deleting via API.