# Objektversionierung version\_id?

**URL:** https://forum.shopware.com/t/objektversionierung-version-id/68712
**Category:** Programmierung
**Created:** [31. Juli 2020 um 10:45 UTC](https://forum.shopware.com/t/objektversionierung-version-id/68712 "2020-07-31T10:45:29Z")
**Posts on this page:** 9
**Page:** 1

<div class="post-metadata">

### Author: ![shoptimizer](https://avatars.discourse-cdn.com/v4/letter/s/9e8a1a/32.png) [@shoptimizer](https://forum.shopware.com/u/shoptimizer)
#### Post date: [31. Juli 2020 um 10:45 UTC](https://forum.shopware.com/t/objektversionierung-version-id/68712/1 "2020-07-31T10:45:29Z")

</div>

Hallo an alle,

ich habe es leider in der Dokumentation und Forum nicht gefunden, was es mit der version\_id, welche bei vielen Tabellen (und natürlich Entities) vorhanden ist, auf sich hat. Leider habe ich auch bei einer Google-Suche&nbsp; (shopware 6 “version\_id” site:docs.shopware.com) nur die eine Seite in der Dokumentation gefunden.

Mir ist bewusst, dass sich die Inhalte des version\_id Feldes auf die Shopware-Version beziehen.

In der [Dokumentation](https://docs.shopware.com/en/shopware-platform-dev-en/how-to/indepth-guide-bundle/entity-association) steht, wir sollen für Verweise auf Shopware-eigene Objekte die id und version\_id Felder als kombinierten Primary Key nutzen.

Auf meinem Entwicklungssystem sind für Shopware-Objekte nur Objekte mit der selben version\_id eingetragen. Auf einer anderen Testinstallation, auf der wir bereits Updates gemacht haben, sind von vielen Objekten Duplikate mit einer abweichenden version\_id generiert worden. Ich vermute, das hat etwas mit dem Updateprozess zu tun.

Meine Fragen:

1. Wann werden neue Objektduplikate mit angepasster VersionsID erzeugt? Bei Updates der eigenen Shopware-Installation?
2. Kann ich mich darauf verlassen, dass es immer jedes Objekt mit der version\_id der aktuell installierten Shopware-Version, gibt?
3. Wie aktualisiere ich meine eigenen, domänenspezifischen Entitäten, welche auf Shopware-Objekte mit version\_id zeigen? In einem Event, das durch den Updateprozess ausgelöst wird?
4. Muss ich für jede eigene Entität, die auf ein Shopware-Objekt mit version\_id verweist, auch selbst in der Form versionieren und “Duplikate” meiner Objekte mit unterschiedlichen version\_id Einträgen erstellen, oder ist es ausreichend, nach einem Update nur mehr auf die aktuellste version\_id des entsprechenden Objektes zu verweisen?
5. [Edit]: Falls bei jedem Update neue Tabelleneinträge mit neuer version\_id für bestehende Objekte angelegt werden - was passiert dann, wenn ich z.B. eine Bestellung, welche in order.version\_id ein Versionsfeld hat, über den Administrationsbereich editiere? Werden dann auch automatisch die “älteren” Versionen der Bestellung angepasst?

In meinem Fall geht es um eine vollständige Eigenentwicklung eines Plugins, welches bei genau einem Kunden zum Einsatz kommen wird, und bei welcher ich alleinigen Zugriff auf die Shopware-Installation habe.

&nbsp;

---

<div class="post-metadata">

### Author: ![shoptimizer](https://avatars.discourse-cdn.com/v4/letter/s/9e8a1a/32.png) [@shoptimizer](https://forum.shopware.com/u/shoptimizer)
#### Post date: [7. August 2020 um 14:37 UTC](https://forum.shopware.com/t/objektversionierung-version-id/68712/2 "2020-08-07T14:37:26Z")

</div>

Hallo, hat hierzu jemand Informationen zur Verfügung?

Für teilweise Antworten bin ich natürlich auch dankbar.

---

<div class="post-metadata">

### Author: ![shoptimizer](https://avatars.discourse-cdn.com/v4/letter/s/9e8a1a/32.png) [@shoptimizer](https://forum.shopware.com/u/shoptimizer)
#### Post date: [24. August 2020 um 11:51 UTC](https://forum.shopware.com/t/objektversionierung-version-id/68712/3 "2020-08-24T11:51:53Z")

</div>

Eine erneute Google Suche hat leider nach wie vor keine Ergebnisse ans Licht gebracht.

Wie löst ihr diese Herausforderung mit Domänenobjekten, welche auf (versionierte) Shopware-Objekte verweisen?

---

<div class="post-metadata">

### Author: ![starxpc](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/starxpc/32/14782_2.png) [@starxpc](https://forum.shopware.com/u/starxpc)
#### Post date: [24. August 2020 um 15:34 UTC](https://forum.shopware.com/t/objektversionierung-version-id/68712/4 "2020-08-24T15:34:24Z")

</div>

Um hier die Diskussion einmal anzustoßen gebe ich zumindest zu einem Punkt mal eine Rückmeldung:

3 und 4. Im DAL wird die version\_id automatisch mit berücksichtigt, d.h. wenn du dir die verknüpfte entity über eine association ziehst erhältst du automatisch die korrekte (neueste). Du musst dort nichts berücksichtigen.&nbsp;  
Das ganze passiert hier: shopware/core/Framework//DataAbstractionLayer/VersionManager.php&nbsp;

Das ganze erst mal ohne Gewähr - aber lt. Quelltextanalyse sollte das so sein.

&nbsp;

SG  
Jens

&nbsp;

---

<div class="post-metadata">

### Author: ![juanitolaguna](https://avatars.discourse-cdn.com/v4/letter/j/dc4da7/32.png) [@juanitolaguna](https://forum.shopware.com/u/juanitolaguna)
#### Post date: [13. März 2021 um 21:56 UTC](https://forum.shopware.com/t/objektversionierung-version-id/68712/5 "2021-03-13T21:56:02Z")

</div>

Seit einem Jahr frage ich mich wofür genau man diese version\_id spalte braucht. Was sind die usecases dafür genau? Sind die Versions immer relevant, auch bei Pluginentwicklung? Wann genau würde der shop in die Luft fliegen wenn man in seinen Queries und Assotiationen die version\_id nicht einbezieht? Es wäre wirklich zum Vorteil wenn uns Shopware die Gründe für diese Architekturentscheidung verraten würde? @shyim @Moritz_Naczenski

---

<div class="post-metadata">

### Author: ![shyim](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/shyim/32/7681_2.png) [@shyim](https://forum.shopware.com/u/shyim)
#### Post date: [15. März 2021 um 07:23 UTC](https://forum.shopware.com/t/objektversionierung-version-id/68712/6 "2021-03-15T07:23:53Z")

</div>

Die Version Spalte dient dazu einen Datensatz schonmal zu bearbeiten ohne ihn Live zu haben. Dies wird zurzeit nur aktiv im Bestell Module im Admin verwendet. Wenn du die Bestellung bearbeitest wird eine neue Version der Bestellung angelegt. Alle Änderungen passieren auf dieser Version. Sobald man speichert wird die bearbeite Version mit der Live Version gemergt und die Änderung ist live zusehn.

Dies wird auch im Zukunft im CMS verfügbar sein, so dass man CMS Änderungen vorbereiten kann in Versionen und diese mergt wenns Live soll.

Für Plugins ist dies relevant, da eine Association zu einer versionierten Entity auch eine VersionID braucht

---

<div class="post-metadata">

### Author: ![WernerBu](https://avatars.discourse-cdn.com/v4/letter/w/71c47a/32.png) [@WernerBu](https://forum.shopware.com/u/WernerBu)
#### Post date: [15. März 2021 um 11:49 UTC](https://forum.shopware.com/t/objektversionierung-version-id/68712/8 "2021-03-15T11:49:02Z")

</div>

Hallo,

eine neue Version einer Bestellung wird auch angelegt, wenn man z.B. einen Beleg erzeugt, der Beleg verweist dann auf die neue versionierte Bestellung. Also einfach mal einen Beleg (Lieferschein oder Rechnung) erstellen und dann in der DB schauen.

Viele Grüße,  
Werner.

---

<div class="post-metadata">

### Author: ![CarstenHarnisch](https://avatars.discourse-cdn.com/v4/letter/c/f0a364/32.png) [@CarstenHarnisch](https://forum.shopware.com/u/CarstenHarnisch)
#### Post date: [24. März 2021 um 08:26 UTC](https://forum.shopware.com/t/objektversionierung-version-id/68712/9 "2021-03-24T08:26:40Z")

</div>

Ich würde das gerne nochmal „aufwärmen“ wollen.

Nach meiner Beobachtung ändern sich die version\_ids in den meisten Tabellen nicht. Und tatsächlich scheint das ja die „Datenbank-Version“ zu sein. Die version\_id ist ja auch über die Tabellen hinweg statisch und gleich.  
Ich verstehe ich das dann, dass hier noch ein Feature aussteht ? Was steckt denn dahinter, eine Versionierung bzgl. der Daten oder bezogen auf die Datenbank. Leider lässt sich kein echtes Schema erkennen, welche Tabellen denn nun „versioniert“ sein sollen oder nicht. Wichtiger ja noch für eigene (neue) Entities ob diese auch selbst versioniert werden sollten.  
Wir arbeiten z.B. gerade an der Versionierung für eine eigene Preis-Berechnung, die „product\_price“ entity hat ja eine Version\_Id, also dann bei uns auch sinnvoll ?

Auf der anderen Seite hat die Kunden-Tabelle dann keine version\_id - da entstehen bei mir leider nur Fragezeichen ?

Wäre wenn es dazu ein wenig Aufklärung gäbe.

(@Moritz_Naczenski oder wer immer hier die Ansprechpartner ist)

---

<div class="post-metadata">

### Author: ![MartinSkroch](https://avatars.discourse-cdn.com/v4/letter/m/e274bd/32.png) [@MartinSkroch](https://forum.shopware.com/u/MartinSkroch)
#### Post date: [22. August 2025 um 08:27 UTC](https://forum.shopware.com/t/objektversionierung-version-id/68712/10 "2025-08-22T08:27:58Z")

</div>

Da ich gerade zu dem Thema auf der Suche war und auf diesen Eintrag gestoßen bin aber auch einiges in der Dokumentation gefunden habe, hier einfach mal die Links für jene aufgrund des Themas ebenfalls auf diesen Eintrag stoßen:

> **[Data Abstraction Layer | Shopware Documentation](https://developer.shopware.com/docs/concepts/framework/data-abstraction-layer.html#versioning)**
>
> Documentation for Shopware developers

> **[Versioning Entities | Shopware Documentation](https://developer.shopware.com/docs/guides/plugins/plugins/framework/data-handling/versioning-entities.html)**
>
> Documentation for Shopware developers
