...
uPortal now has an export/import system using xml files generated by Cernunnos export scripts. Basically, you will run an export command on your existing portal project to generate a number of xml data files. You then run import in your uPortal3 project to import the data from these xml files into your uPortal3 database. Take a look at the Cernunnos overview to get a better understanding of this process. After that, move on to reading about Exporting and Importing.
TIP: Never export/import a database with portals actively connected to it. Don't assume edits to a database will persist or take affect if portals are connected to it. The portal does some advanced caching and may overwrite your change when it shuts down or never see a new change because it's using a cached copy of the row.
These scripts still have a few bugs. Familiarize yourself with the known export/import bugs in JIRA and post any new bugs you find.
Default Database
The default database is populated by the db-import task in build.xml. This task is called by ant initdb, which in turn is called by ant initportal. The db-import task actually uses crn-import to create the database:
...
I highly recommend setting up an entities directory for your team once you've had a successful export. This makes it easy for anyone working on your portal is completely optional, but it's easy to setup and allows developers on your team to populate their development database databases with the groups, channels, permissions, fragment-layouts, etc that your production portal uses. After you've completed your export copy your export folder under: uportal-impl/src/main/resources/properties/db
In my case, I called the folder calpoly_entities
The contents should look something like this (note that I've omitted the contents of the larger directories):
Panel |
---|
channel: channel-type: entity-type: fragment-layout: fragment-users: group_membership: layout: permission: structure: theme: user: |
Modify build.xml
Now in your build.xml you should add a import task for your entities and change initdb to not call the default entities.
Code Block |
---|
<target name="db-import-calpoly" description="Imports the CalPoly groups, channels, memberships, permissions from a snapshot of prod Nov 2008">
<echo message="Importing CalPoly groups, channels, memberships, permissions data" />
<antcall target="crn-import">
<param name="dir" value="${basedir}/uportal-impl/src/main/resources/properties/db/calpoly_entities" />
</antcall>
</target>
|
In initdb remove the call to db-import. I also printed a message here:
Code Block |
---|
<echo message="You now need to run db-import-default, or db-import-calpoly to populate a working database." />
|
Note that I renamed db-import to db-import-default in my build.xml