In this article, we will show you how to copy databases via ETL. This method does not require a service restart. All you need is a groovy script that is run in Groovy job. For this example, we will use the “Demo” database.

Groovy script

copyJedoxDatabase( ‘Demo’, ‘Demo_Copy’ )
void copyJedoxDatabase( String jedoxConnectionSrc, String jedoxDatabaseDst ) {
String jedoxDatabaseSrc = OLAP.getDatabase( jedoxConnectionSrc ).getName()
String backupFilename = API.getProperty( “Demo_Copy” ) + jedoxDatabaseSrc + ‘.zip’
// Remove backupFile if exists (e.g. from a previous run)
new File( backupFilename ).delete()
IDatabase db = OLAP.getDatabase( jedoxConnectionSrc ) ‘Saving database ‘ + jedoxDatabaseSrc + ‘ to ‘ + backupFilename )
db.backup( backupFilename )
IConnection conn = OLAP.getConnection( jedoxConnectionSrc ) ‘Restoring database ‘ + jedoxDatabaseDst + ‘ from ‘ + backupFilename )
conn.addDatabase( jedoxDatabaseDst, backupFilename )
boolean fileSuccessfullyDeleted = new File( backupFilename ).delete()
Copy database

Once the job is run, the new database will appear in the modeler.

ETL job can be downloaded from this location.