OneData 10.7 | Managing Master Data with webMethods OneData | Administering webMethods OneData | Working with Metadata | Transferring DDL Changes
 
Transferring DDL Changes
You can create a repository data model in OneData or by using an external CASE modeling tool. When generating DDL, it is advisable to use OneData modeling tools to maximize compatibility between systems during metadata transfer. When using the transfer metadata function to migrate configuration data from one repository to another, only metadata is transferred. The actual data object (physical table) is not transferred. (This assumes that the tables already exist in the repository.)
OneData can generate the following types of DDL:
*General DDL: Includes table, column, and constraints (unique primary key and foreign key).
*Audit DDL: Includes seven audit columns and two audit triggers. One
*in work area and one in the release area that are required for each underlying table in the repository.
*Sequence DDL: Can generate auto-numbers or sequence data types given a trigger and in some cases database sequences created.
Each DDL generation type is independent of the others and can be used or disabled according to your organization’s needs.The following table describes the recommended scenarios in which to use an external CASE modeling tool for generating DDL:
Type of DDL
Recommended Ownership
Impact when Transferring Metadata
Tables and columns
CASE Tool
None
Primary key (PK) constraint name
CASE Tool. Explicitly declare PK name and generate DDL definition
If primary key names are not explicitly specified, OneData generates a different primary key in every environment. To synchronize the PK name, transfer metadata and then synchronize after each instance to sync the PK name.
Foreign key (FK) constraint name (database enforced)
CASE Tool. Explicitly declare FK name and generate DDL definition.
If foreign key names are not explicitly specified, OneData generates different foreign key names in every environment. This can cause a data mismatch between the metadata and the database.
Foreign key (FK) constraint name (application enforced)
Explicit name declaration in OneData during creation.
If OneData automatically generates application foreign key names, OneData uses the running counter in the target repository to generate the foreign key in the target. This is not an issue unless the foreign key name is explicitly used in iHooks.
Unique/ alternate key constraint
CASE Tool. Explicitly declare name and generate DDL definition
If the CASE tool does not generate the DDL definition and a unique constraint exists for an object in the source, you must copy the physical structure of the object to the destination repository manually using a CASE tool. Each time you synchronize the structure, OneData loses the unique constraint information. OneData does not enforce the unique constraint even if the constraint exists in the metadata, unless it is enforced in the database.
Audit columns addition
Either CASE tool or OneData. Update schema creates the columns unless Audit DDL generation is disabled. Defining it in a CASE tool is useful to single source DDL generation.
It is assumed that the audit columns exist. If audit columns are missing in the database, the data manager generates an error.
Audit column triggers
Either CASE tool or OneData. Update schema creates the columns unless Audit DDL generation is disabled. Defining it in a CASE tool is useful to single source DDL generation.
Metadata on audit triggers is not maintained with other OneData metadata, and thus is not transferred.
Sequence declaration
The seed starting sequence number depends on the data and the maximum number used.
For empty tables, use a CASE tool to generate the starting sequence.
For existing tables (with data), see Changing Sequence Numbers for Sequence Declaration.
If sequence names are generated by OneData (not explicitly specified), then the sequence name on the target repository is generated based on the running counter on the target. There is no consistency, especially if the sequence is used in iHooks.
Sequence Trigger
CASE tool If OneData is creating the sequence and you are using a sequence in iHooks, set the column definition properties as follows:
*Use Specified Value: field should be selected.
*Trigger Name: explicitly specify the value.
For information about defining columns, see Implementing webMethods OneData.
For externally generated sequences, see the variations on trigger definitions in the following sections.
If sequence names are generated by OneData (not explicitly specified), the sequence name on the target repository will be generated using the running counter on the target. If the triggers are generated externally, metadata will be out of sync. Transferring metadata does not transfer sequence and trigger DDL. You must create the DDL externally or perform the procedure, Changing Sequence Numbers for Sequence Declaration.