Exporting and Importing Partition Policies and Details

Posted by Valeriy Bashkatov on 31-Aug-2017 05:23

I seen this arcticle knowledgebase.progress.com/.../000056440
But in this article there is no example how to do it

So my question is: how to dump _partition-policy and _partition-policy-detail and load it into another database which is have similar structure.
The purpose is to distribute partition policy accros multiple databases from developers database.

That way is possible? or it is better to use another method for this?

Regards,
Valeriy

Posted by Jeff Ledbetter on 31-Aug-2017 07:19

/*
 rtb_dumppartpolicies.p
 Dump Partition Policies for the specified (by logical DB name) Database. 
*/
ROUTINE-LEVEL ON ERROR UNDO, THROW.

DEFINE INPUT  PARAMETER pcDbName    AS CHARACTER NO-UNDO.
DEFINE INPUT  PARAMETER pcSchemaDir AS CHARACTER NO-UNDO.

&GLOBAL-DEFINE MIN-VERSION "11.4.0".

&IF PROVERSION GE {&MIN-VERSION} &THEN

  DEFINE VARIABLE cFilename AS CHARACTER NO-UNDO.
  DEFINE VARIABLE service   AS OpenEdge.DataAdmin.DataAdminService NO-UNDO.
  
  cFilename = SUBSTITUTE("&1/&2_PartitionPolicies.json",pcSchemaDir,pcDbName).
  
  service = NEW OpenEdge.DataAdmin.DataAdminService(pcDbName).
  service:GetPartitionPolicies():ExportTree(cFilename).
  
  FINALLY:
    DELETE OBJECT service NO-ERROR.
  END FINALLY.

&ENDIF

/*
 rtb_inst/schupd3.p
 Load Table Partition Policies for DICTDB from specified file. 
*/
ROUTINE-LEVEL ON ERROR UNDO, THROW. 

DEFINE INPUT  PARAMETER pcFilename AS CHARACTER NO-UNDO.

&GLOBAL-DEFINE MIN-VERSION "11.4.0"

&IF PROVERSION GE {&MIN-VERSION} &THEN

  DEFINE VARIABLE service   AS OpenEdge.DataAdmin.DataAdminService    NO-UNDO.
  DEFINE VARIABLE policies  AS OpenEdge.DataAdmin.IPartitionPolicySet NO-UNDO.
  
  service = NEW OpenEdge.DataAdmin.DataAdminService(LDBNAME("DICTDB")).
  policies = service:GetPartitionPolicies().
  
  policies:ImportTree(pcFilename).
  service:UpdatePartitionPolicies(policies).
  
  FINALLY:
    DELETE OBJECT policies NO-ERROR.
    DELETE OBJECT service NO-ERROR.
  END FINALLY.

&ENDIF

All Replies

Posted by Jeff Ledbetter on 31-Aug-2017 07:19

/*
 rtb_dumppartpolicies.p
 Dump Partition Policies for the specified (by logical DB name) Database. 
*/
ROUTINE-LEVEL ON ERROR UNDO, THROW.

DEFINE INPUT  PARAMETER pcDbName    AS CHARACTER NO-UNDO.
DEFINE INPUT  PARAMETER pcSchemaDir AS CHARACTER NO-UNDO.

&GLOBAL-DEFINE MIN-VERSION "11.4.0".

&IF PROVERSION GE {&MIN-VERSION} &THEN

  DEFINE VARIABLE cFilename AS CHARACTER NO-UNDO.
  DEFINE VARIABLE service   AS OpenEdge.DataAdmin.DataAdminService NO-UNDO.
  
  cFilename = SUBSTITUTE("&1/&2_PartitionPolicies.json",pcSchemaDir,pcDbName).
  
  service = NEW OpenEdge.DataAdmin.DataAdminService(pcDbName).
  service:GetPartitionPolicies():ExportTree(cFilename).
  
  FINALLY:
    DELETE OBJECT service NO-ERROR.
  END FINALLY.

&ENDIF

/*
 rtb_inst/schupd3.p
 Load Table Partition Policies for DICTDB from specified file. 
*/
ROUTINE-LEVEL ON ERROR UNDO, THROW. 

DEFINE INPUT  PARAMETER pcFilename AS CHARACTER NO-UNDO.

&GLOBAL-DEFINE MIN-VERSION "11.4.0"

&IF PROVERSION GE {&MIN-VERSION} &THEN

  DEFINE VARIABLE service   AS OpenEdge.DataAdmin.DataAdminService    NO-UNDO.
  DEFINE VARIABLE policies  AS OpenEdge.DataAdmin.IPartitionPolicySet NO-UNDO.
  
  service = NEW OpenEdge.DataAdmin.DataAdminService(LDBNAME("DICTDB")).
  policies = service:GetPartitionPolicies().
  
  policies:ImportTree(pcFilename).
  service:UpdatePartitionPolicies(policies).
  
  FINALLY:
    DELETE OBJECT policies NO-ERROR.
    DELETE OBJECT service NO-ERROR.
  END FINALLY.

&ENDIF

Posted by Valeriy Bashkatov on 31-Aug-2017 09:15

Hi Jeff,

This is what I'm looking for.

Thank you very much!

Regards,

Valeriy

This thread is closed