In Magento 2.3 EE, entity_id is missing in EAV tables, instead row_id is available

Please explain the difference between row_id and entity_id and the removal of entity_id in EAV tables

1 Answer 1


Time Dimension

row_id is used to facilitate the Time Dimension for entities that support it. By having this additional identifier, it allows an entity (product, category, sales rule, etc..) to be stored more than once in their respective MySQL table but expressing different values for the same entity. These altered versions of the same entity are created using Magento's "Content Staging" feature.

Content Staging

You can schedule changes for sales rules, category, products, etc. to happen during a given time frame or permanently. row_id is one of the key pieces to allowing this to happen as stated above, allowing those same entities to have different values at different points in time.

Example: You want to change a product name for a month. You can schedule that change using the content staging by specifying a different product name for the date range needed. Behind the scenes, Magento will utilize that row_id (among other meta data to support this feature) to store the scheduled change. If a customer visits the site during the time the product name was scheduled to be changed, Magento will end up loading the row_id corresponding to how the product was scheduled to "look" at that point in time.


Magento Docs - Content Staging

Magento DevDocs - Magento_CatalogStaging module

  • What is the source|foundation on|of this? Is it documented anywhere else? Not being rude, just curious. Jun 25, 2019 at 16:40
  • 2
    Most of what I know about it is from either staring at the code, working on tasks/bugs related to the content staging feature, or reading devdocs/forums/stack overflow. I've updated the answer with a link to Magento docs, but I can keep searching and update with more links if I come across any that really clear up the technical part of it for us.
    – sdaugherty
    Jun 25, 2019 at 16:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.