Search code examples
liferayliferay-6staging

What happens behind the scenes when Liferay is Staged?


When Local Live staging is enabled for a site, a clone of the site is created
containing copies of all of the site’s existing pages. 
  1. I want to know what 'cloning' technically means in Liferay's terminology?
  2. Are there any changes to Database? In the sense, will there be separate tables, indexes etc created in DB for Live and clone site separately?

Solution

  • No, there are no changes to the underlying structure of the database.

    You already know what a site is (essentially, a collection of pages and entitites): well, a site is internally a "group" (in other words, a site is a "specialization" of a group), and every group has its own row in the Group_ table, where the primary key is the column groupId. If you already built some Liferay plugins, I'm sure you already know what I'm talking about :-)

    Well, when you activate staging for a site, a new group gets created: the "clone of the site" is just a new group with a special meaning (sorry if I'm oversimplifying!). Pages and entities are then copied from the original site through a LAR export/import process. This means that rows in the entities' tables (BlogsEntry, BookmarksEntry, DLFileEntry and so on) will be duplicated as well, and these new rows will point to the new group: they will have the new groupId as their value for the column groupId.

    The two groups ("live" and "staging") are separated, and when you publish the staging site, its content is exported in a LAR file and then imported back in the live site.

    Hope it's useful, tell me if you need some more info :-)