This lightning talk discusses an out-of-the-box tool for exporting and importing company-level data between Liferay environments. The tool allows selective export/import of roles, permissions, and sites without directly accessing the database. It uses configuration files and Liferay services to read and write data while preserving data integrity. The open source tool is in beta and aims to improve coverage of additional types of company-level data in future releases.
1. Lightning Talk
7 minutes to talk about
Exporting and importing
company-level data
S辿bastien Le Marchand
Liferay Europe Symposium Wiesbaden, Germany | 16-17 october 2012
3. Problematic
A classic data import/export use case
+ Transfer data between multiple environnements
Need for
束 Selective 損 export or import, not all data Integration
Incremental import
dont push DB dump !
Q/A
+ Available tools
束 Site scope 損 data
LAR export / import
Remote stagging Acceptance
Resource Importer Plugin
Data outside 束 site scope 損 (company-level data)
?... thats the problem !
Production
Liferay Europe Symposium Wiesbaden, Germany | 16-17 october 2012 3
4. Problematic
What are company-level data ?
束 Site-scope 損 data
Covered by Liferay ARchive native export /
import
束 Company-scope 損 data
No native feature to help us
Liferay Europe Symposium Wiesbaden, Germany | 16-17 october 2012 4
6. Frontline feedback
Example : roles permissions definitions
+ Default permissions for roles
A critical security configuration
2
1
3
+ How-to ?
Without any tool (very painful) :
you need to write specific configuration procedure documentation (potentially huge)
You need to 束 replay 損 procedure manually (UI) for each environement (re-)initi
Unsafe (human error)
Build a tool to do the work (go back at home earlier !)
Fast to replay
Repeatable (error-prone)
Liferay Europe Symposium Wiesbaden, Germany | 16-17 october 2012 6
7. Frontline feedback
Best practices to write import/export tools
+ Dont work directly with database (SQL extract & load)
Possible application-level data integrity violations
+ Only use portal services to read and write data
Choose your weapon
Plain-old plugin, written in Java
Admin script, written in Groovy, Ruby, etc.
+ Be carreful about IDs
An entity ID is not the same in source environment and target environment
Do not rely on entity ID
Relations between entities must not be stored with IDs
Liferay Europe Symposium Wiesbaden, Germany | 16-17 october 2012 7
9. Out-of-the-box tool
Discover a comprehensive ready-to-use tool
+ Hook Plugin
No user interface, actions only by file manipulation
Easy to use for Ops
Input and output files in the same directory (configurable)
${liferay.home}/deploy/imex
+ Export
Input
xxxx.export.properties (options)
Output
xxxx.imex.zip (data archive)
+ Import
Input
xxxx.import.properties (options)
xxxx.imex.zip (data archive)
Liferay Europe Symposium Wiesbaden, Germany | 16-17 october 2012 9
10. Out-of-the-box tool
Options overview
xxxx.export.properties
Liferay Europe Symposium Wiesbaden, Germany | 16-17 october 2012 10
11. Out-of-the-box tool
Data format overview
Liferay Europe Symposium Wiesbaden, Germany | 16-17 october 2012 11
12. Out-of-the-box tool
Get it !
+ Historically, internal developpement targeting Liferay 5.2.x
+ Now open-source project targeting Liferay 6.1
Beta release
+ Coverage :
Now
Roles & roles default permissions definitions
Sites (using LAR mechanisms)
Next releases
Extended coverage
http://sqli-imex.github.com
Liferay Europe Symposium Wiesbaden, Germany | 16-17 october 2012 12
13. That's all folks!
Thanks!
+Im/Ex tool +S辿bastien Le Marchand
http://sqli-imex.github.com slemarchand@sqli.com
@slemarchand
+SQLI Group
http://www.sqli.com
http://www.entreprise-digitale.com
@SQLIEENTREPRISE
> 1800 employees
170 M turnover
Capability to deploy projects
internationally
Liferay Europe Symposium Wiesbaden, Germany | 16-17 october 2012 13