Sometimes it is necessary to recreate a database, copying data from another existing database. For instance, recreating development database instance from production data, etc. While most RDBMS provide data import/export tools, they normally require advanced DBA skills to use and are most often not portable across database engines. Cayenne will provide a lightweight ant task to do data porting between the databases with identical schema, using DataMap information.
cdataport is an Ant task that takes a Cayenne project (cayenne.xml) with at least one DataMap and two DataNodes and ports data from source DataNode to a destination DataNode. All DataMaps linked to either the source or the target DataNode will be considered for porting.
|projectFile||Location of Cayenne project file containing mapping.||Yes|
|maps||A comma-separated list of DataMap names within the project, whoose entities data needs to be ported. If ommitted, all DataMaps in the project will be ported.||No|
|srcNode||Source DataNode name.||Yes|
|destNode||Destination DataNode name.||Yes|
|cleanDest||If false, will skip deleting data from the destination tables. True is default.||No|
|includeTables||Comma-separated list of tables to include in the port. If ommitted, all mapped DbEntities will be used. It is possible to use "*" to indicate name patterns.||No|
|excludeTables||Comma-separated list of tables to exclude from the port. If ommitted, all mapped DbEntities will be used. It is possible to use "*" to indicate name patterns.||No|
Here is an example of using cdataport to port data using all source DataMaps, excluding DBEntities with name matching "BILL_*":
Load the Ant task (note: if you already loaded all Cayenne tasks via an antlib taskdef described before, this step is not needed):
Invoke the Ant task: