views:

58

answers:

1

My question has to do with best practices and tools used for promoting application configuration data to a new environment as part of a typical testing cycle. The latter includes three environments, TEST, STAGING and PROD. Code and configuration changes are applied first to test and then promoted to STAGING and then to PROD once tests have passed at each step of the way.

Promoting a build of the software from environment to environment is straightforward. However, managing the promotion of the corresponding setup / configuration data changes is more challenging. The application is highly configurable and the configuration data is large - several GB stored in a few hundred Oracle db tables.

Conceptually, the problem consists of:

  1. Keeping track of all creates, updates and deletes to configuration data made within the application.
  2. Transferring those changes from one environment to another

Due to the large number of changes involved, doing this manually is time consuming and error prone. My question is: are there any useful tools and strategies that can be used to automate/strealmine this process?

+1  A: 

Have you looked at Oracle Auditing?

Set auditing on your configuration tables, then write a script that will read the audit data and build a SQL script that can be used to perform the same changes to other databases.

Mark Baker
Thanks for the response. You are currently the strongest contender for the coveted and prestigious green check award. We'll see if anyone else dares to step into the ring with you. So do you or others you know use Oracle Auditing for this purpose?
btreat
Depending on the version of Oracle that you're running, http://download-west.oracle.com/docs/cd/B12037_01/network.101/b10773/cfgaudit.htm#1012955 gives you some information about how to configure auditing. Note that the logged information includes the actual SQL statements executed against the audited tables (together with any bind variables if appropriate). This should provide everything you need to spool a series of SQL statements to an update file.
Mark Baker