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
• don’t 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)
?... that’s 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
+ Don’t 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