web-dev-qa-db-fra.com

Comment désactiver complètement la fonction de révision?

J'ai suivi les discussions ici et d.o sur la suppression des tables de révisions inutiles.

Comment empêcher complètement l'écriture de données dans les tables node_revision et field_revision_ *?

6
uwe

Norevisions SQL sur le terrain résout en fait exactement ce problème en

Les norevisions SQL de champ fournissent un backend de stockage de champ utilisant SQL qui ne crée pas de table de révision pour chaque champ.

Je ne l'ai pas essayé, mais tout ce qui est écrit par Alex Pott devrait probablement fonctionner correctement.

Je suppose cependant que cela vaut également pour all entites car il change le backend de stockage.

Sans nouveau moteur de stockage, voici la réponse originale, moins utile:

Les tables de révision must doivent être disponibles et elles must contiennent des données. Malheureusement, vous venez de ne peut pas vous en débarrasser sans casser complètement l'API Field, la raison étant que la révision, contrairement à leur nom, est le stockage de données.

Il est peut-être possible, avec plus de magie de base de données que je ne le sais, que vous puissiez définir les tables field_data_ * normales pour qu'elles soient des miroirs de chaque table de révision. Cela pourrait fonctionner.

En dehors de cela, je ne vois aucune solution qui pourrait faire cela.

Edit: Bien que je ne sache pas si cela aura des effets secondaires "intéressants", j'ai demandé aux sorciers si c'était faisable. Puis-je avoir une table comme alias ou lien symbolique vers une autre? .

Edit 2: En fait, il semble que beaucoup de sorcellerie ne soient pas nécessaires du tout. On pourrait essayer de remplacer les tables field_data_ * par un View qui réplique les tables de révision correspondantes. Encore une fois, je n'ai pas essayé cela, et ma compréhension des entrailles des API de champ fait un peu défaut, mais cela fonctionne certainement pourrait.

Edit 3: (Oui, cela devient idiot), quelqu'un a souligné que ce qui précède entraînera l'écriture de deux fois les mêmes données, maintenant dans le = pareil table. Donc ça ne marchera probablement pas de toute façon.

4
Letharion